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());
        }
        
        
        
        
        
        
    }
View Code

运行输出如下结果:

高个子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 }
View Code

在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()); 
       }
    
        
        
        
    }
}
View Code

项目结构:

技术分享图片

 




以上是关于ArrayList元素的排序 java 集合的主要内容,如果未能解决你的问题,请参考以下文章

Java对List集合的排序

java 18-11 Collections用于ArrayList集合中

java成神之——集合框架之ArrayList,Lists,Sets

ArrayList排序Sort()方法(转)

java集合问题

在java中怎样求多个arraylist集合的交集?