การเรียงข้อมูลใน Java 8

การเรียงข้อมูลใน Java 8 เขียนสั้นลงและอ่านง่ายขึัน

ตัวอย่างถัดไปแสดงการเรียงข้อมูลพนักงานโดยใช้คุณสมบัติ lambda expression

โดยในส่วนแรกใช้ stream และส่วนถัดไปใช้ Collections เพื่อนเก่า

import java.util.List;
import java.util.ArrayList;
import java.util.Collections;

public class Test {

  public static void main(String[] args) {
    List<Person> staffs = new ArrayList<>();
    staffs.add(new Person("Tom", 23));
    staffs.add(new Person("Ann", 32));
    staffs.add(new Person("Roy", 10));

    System.out.println(staffs);
    Object[] objects = staffs.stream().sorted((p1, p2) -> p1.getAge() - p2.getAge()).toArray();
    System.out.println(java.util.Arrays.toString(objects));

    System.out.println("-----------------");

    System.out.println(staffs);
    Collections.sort(staffs, (p1, p2) -> p1.getAge() - p2.getAge());
    System.out.println(staffs);
  }
}

ผลการทำงานคือ

[Person{name=Tom, age=23}, Person{name=Ann, age=32}, Person{name=Roy, age=10}]
[Person{name=Roy, age=10}, Person{name=Tom, age=23}, Person{name=Ann, age=32}]
-----------------
[Person{name=Tom, age=23}, Person{name=Ann, age=32}, Person{name=Roy, age=10}]
[Person{name=Roy, age=10}, Person{name=Tom, age=23}, Person{name=Ann, age=32}]
public class Person {
  private String name;
  private int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  @Override
  public String toString() {
    return "Person{" + "name=" + name + ", age=" + age + '}';
  }
}

สอนเขียน Java

หากจะนำข้อความไปใช้ ต้องแสดงที่มา และห้ามใช้ในเชิงพาณิชย์

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s