ArrayList元素的排序 java 集合
Posted bysking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArrayList元素的排序 java 集合相关的知识,希望对你有一定的参考价值。
1.新建项目,新建Man类,添加属性
2.在代码编辑区域右键,选中source,自动生成setter,getter方法,以及构造函数(类似操作,选中generate constructor using field...)
3.勾选相应的属性,确认即可,很方便。
结果如下图:
Man.java代码如下:
1 public class Man { 2 3 private String name; 4 public String getName() { 5 return name; 6 } 7 public void setName(String name) { 8 this.name = name; 9 } 10 public int getHeight() { 11 return height; 12 } 13 public void setHeight(int height) { 14 this.height = height; 15 } 16 private int height; 17 18 public Man(String name, int height) { 19 super(); 20 this.name = name; 21 this.height = height; 22 } 23 24 25 26 }
新建Test.java
添加代码:
import java.util.ArrayList; public class Test { public static void main(String[] args) { ArrayList<Man> arr=new ArrayList<>();//新建动态链表 //创建4个对象 Man man_exam1=new Man("高个子",185); Man man_exam2=new Man("中个子",175); Man man_exam3=new Man("矮个子",165); Man man_exam4=new Man("高个子",195); //随意添加到动态数组里面 arr.add(man_exam1); arr.add(man_exam4); arr.add(man_exam3); //打印查看 for (Man man : arr) { System.out.println(man.getName()+man.getHeight()); } }
运行输出如下结果:
高个子185
高个子195
矮个子165
可以看到是乱序的。现在对其排序:
新建类:Compare.java
代码:
1 import java.util.Comparator; 2 3 public class Compare implements Comparator{ 4 5 public int compare(Object obj0, Object obj1) { 6 Man s1=( Man)obj0; 7 Man s2=( Man)obj1; 8 9 if(s1.getHeight()<=s2.getHeight()) 10 return 1; 11 12 return -1; 13 } 14 15 }
在Test.java中加入如下代码(对象已经存放在动态数组arr里面,执行如下代码后arr中已经是排好序的):
Compare comparator=new Compare();
Collections.sort(arr, comparator);
最终完整版Test.java代码:
import java.util.ArrayList; import java.util.Collections; public class Test { public static void main(String[] args) { ArrayList<Man> arr=new ArrayList<>();//新建动态链表 //创建4个对象 Man man_exam1=new Man("高个子",185); Man man_exam2=new Man("中个子",175); Man man_exam3=new Man("矮个子",165); Man man_exam4=new Man("高个子",195); //随意添加到动态数组里面 arr.add(man_exam1); arr.add(man_exam4); arr.add(man_exam3); //打印查看 for (Man man : arr) { System.out.println(man.getName()+man.getHeight()); } System.out.println("排序后"); Compare comparator=new Compare(); Collections.sort(arr, comparator); for (int i=0;i<arr.size();i++){ Man user_temp=(Man)arr.get(i); System.out.println(user_temp.getName()+","+user_temp.getHeight()); } } }
项目结构:
以上是关于ArrayList元素的排序 java 集合的主要内容,如果未能解决你的问题,请参考以下文章
java 18-11 Collections用于ArrayList集合中