arraylist数组排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arraylist数组排序相关的知识,希望对你有一定的参考价值。

class Massage
Emp emp;
private ArrayList arr=null;
Massage()
arr=new ArrayList();

//按薪水由低到高排序
public void sort()
float sla;
for(int i=0;i<arr.size();i++)
for(int j=i+1;j<arr.size()-1;j++)
Emp temp=(Emp)arr.get(i);
Emp temp1=(Emp)arr.get(j);
if(temp.getSla()>temp1.getSla())
sla=temp.getSla();
temp1.getSla()=temp.getSla();
temp.setSla(temp1.getSla());




System.out.println("薪水有低到高排序:");
for(int i=0;i<arr.size();i++)
Emp temp=(Emp)arr.get(i);
System.out.print(temp.getSla()+" ");


class Emp
private String no;
private String name;
private float sla;
public String getNo()
return no;

public void setNo(String no)
this.no = no;

public String getName()
return name;

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

public float getSla()
return sla;

public void setSla(float sla)
this.sla = sla;

Emp(String no,String name,float sla)
this.no=no;
this.name=name;
this.sla=sla;



public class Example
public static void main(String args[])
Massage me=new Massage();
Emp ee=new Emp("10001","张三",1500);
Emp ee1=new Emp("10002","李四",1300);
Emp ee2=new Emp("10003","王五",1600);
me.info(ee);
me.info(ee1);
me.info(ee2);
me.show("10001");
me.showall();
me.mod("10002", 1450.5f);
me.remove("10003");
me.sort();
me.total();

用Collections工具方法

import java.util.Collections;
import java.util.Comparator;

// 按薪水由低到高排序
    public void sort() 
        Collections.sort(arr, new Comparator() 

            public int compare(Object o1, Object o2) 
                Emp e1= (Emp) o1;
                Emp e2= (Emp) o2;
                
                return Float.compare(e1.sla , e2.sla);
            
        );
    

参考技术A import java.util.ArrayList;
import java.util.List;
public class TestClassl

public static void main(String[] args)
List<Integer> list=new ArrayList<Integer>();
list.add(7);
list.add(11);
list.add(3);
list.add(15);
list.add(6);
list.add(9);
list.add(76);
System.out.println(list);
chaRu(list);
System.out.println(list);

public static void chaRu(List<Integer> list)

for (int i = 0; i < list.size();i++)
for (int j = 0; j < i; j++)
if(list.get(i)>list.get(j))

list.set(i, list.get(i)^list.get(j));
list.set(j, list.get(i)^list.get(j));
list.set(i, list.get(i)^list.get(j));




参考技术B public void sort()
for(int i=0;i<arr.size();i++)
for(int j=i+1;j<arr.size()-1;j++)
Emp temp=(Emp)arr.get(i);
Emp temp1=(Emp)arr.get(j);
if(temp.getSla()>temp1.getSla())
  arr.set(j,temp);
  arr.set(i,temp1);



System.out.println("薪水有低到高排序:");
for(int i=0;i<arr.size();i++)
Emp temp=(Emp)arr.get(i);
System.out.print(temp.getSla()+"  ");

请理解下对象的概念。

如何根据GPA对数组列表进行升序排序? arraylist 包含一个对象数组。 (Java)[重复]

【中文标题】如何根据GPA对数组列表进行升序排序? arraylist 包含一个对象数组。 (Java)[重复]【英文标题】:How ro sort the array list in ascending order based on GPA? The arraylist is holding an array of objects. (Java) [duplicate] 【发布时间】:2019-08-20 23:17:01 【问题描述】:

我正在尝试根据 GPA 升序对这个数组列表进行排序。 Student 类封装了 3 条信息:学号、姓氏、平均绩点。

所以我需要使用gradePointAverage 对它们进行排序。

//student array
studentArray[0] = student;
studentArray[1] = new Student(9093891, "Brown", 2.55);
studentArray[2] = new Student(9301879, "Carson", 1.11);
studentArray[3] = new Student(3910880, "Deardon", 4.01);
studentArray[4] = new Student(8891783, "Ellis", 2.66);
studentArray[5] = new Student(3899132, "Fisher", 0.55);

//filling my studentlist
studentList.add(student);
studentList.add(studentArray[0]);
studentList.add(studentArray[1]);
studentList.add(studentArray[2]);
studentList.add(studentArray[3]);
studentList.add(studentArray[4]);

ArrayList<String> sortedArrayListDescending = studentList.sortDescending();

【问题讨论】:

我知道它说 studentList.sortDescending() 但即使这样也不起作用。那是在胡闹。我收到“错误:找不到符号” "我得到一个"错误:找不到符号"" 那是因为 List 中没有 sortDescendingsortAscending 方法,有 sort 方法它采用Comparator,它表示用于检查两个比较对象之间的机制是否相等,大于或小于第二个。 【参考方案1】:

使用Collections.sort()升序

Collections.sort(studentList,Comparator.comparingDouble(Student::getGradePointsAverage));

降序

Collections.sort(list,Comparator.comparingDouble(Student::getGradePointsAverage).reversed());

【讨论】:

以上是关于arraylist数组排序的主要内容,如果未能解决你的问题,请参考以下文章

使用与数组相同的算法对 ArrayList 进行排序

C# ArrayList的排序

根据字符串数组顺序对 ArrayList 重新排序 - Java

Java中数组的ArrayList排序

如何根据GPA对数组列表进行升序排序? arraylist 包含一个对象数组。 (Java)[重复]

在 java 中对 ArrayList<Integer> 的数组进行排序