1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java arraylist comparable_Java 两种ArrayList集合自定义对象属性排序 Comparator接口 或 Comparable接口...

java arraylist comparable_Java 两种ArrayList集合自定义对象属性排序 Comparator接口 或 Comparable接口...

时间:2022-02-03 21:14:21

相关推荐

java arraylist comparable_Java 两种ArrayList集合自定义对象属性排序 Comparator接口 或 Comparable接口...

1,Comparator接口 —— 重写Comparator

public class User {

private String id;

private String name;

public User (String id, String name) {

this.id = id;

this.name = name;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public String toString() {

return "User{" +

"id='" + id + '\'' +

", name='" + name + '\'' +

'}';

}

}

public class ComparatorTest {

public static void main(String[] args) {

List list = new ArrayList<>();

User user1 = new User("222", "张三");

User user2 = new User("333", "李四");

User user3 = new User("111", "王五");

list.add(user1);

list.add(user2);

list.add(user3);

System.out.println("排序前:");

for (User user : list) {

System.out.println(user.toString());

}

System.out.println("排序后:");

// 调用排序方法,进行排序

sortById(list);

for (User user : list) {

System.out.println(user.toString());

}

}

/**

* 根据集合中的对象id,进行升序排序

*/

public static void sortById(List list) {

Collections.sort(list, new Comparator() {

@Override

public int compare(User u1, User u2) {

String id1 = u1.getId();

String id2 = u2.getId();

// 字符串忽略大小写,进行升序排序

return pareToIgnoreCase(id2);

}

});

}

}

排序前:

User{id='222', name='张三'}

User{id='333', name='李四'}

User{id='111', name='王五'}

排序后:

User{id='111', name='王五'}

User{id='222', name='张三'}

User{id='333', name='李四'}

2,Comparable接口 —— 实体实现Comparable接口,重写compareTo​​​​​​() 方法

public class User implements Comparable{

private String id;

private String name;

public User(String id, String name) {

this.id = id;

this.name = name;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public String toString() {

return "User{" +

"id='" + id + '\'' +

", name='" + name + '\'' +

'}';

}

@Override

public int compareTo(User o) {

return pareToIgnoreCase(o.getId());

}

}

public class ComparatorTest {

public static void main(String[] args) {

List list = new ArrayList<>();

User user1 = new User("222", "张三");

User user2 = new User("333", "李四");

User user3 = new User("111", "王五");

list.add(user1);

list.add(user2);

list.add(user3);

System.out.println("排序前:");

for (User user : list) {

System.out.println(user.toString());

}

System.out.println("排序后:");

// 进行集合排序

Collections.sort(list);

for (User user : list) {

System.out.println(user.toString());

}

}

}

排序前:

User{id='222', name='张三'}

User{id='333', name='李四'}

User{id='111', name='王五'}

排序后:

User{id='111', name='王五'}

User{id='222', name='张三'}

User{id='333', name='李四'}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。