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 中没有sortDescending
和 sortAscending
方法,有 sort
方法它采用Comparator
,它表示用于检查两个比较对象之间的机制是否相等,大于或小于第二个。
【参考方案1】:
使用Collections.sort()
升序
Collections.sort(studentList,Comparator.comparingDouble(Student::getGradePointsAverage));
降序
Collections.sort(list,Comparator.comparingDouble(Student::getGradePointsAverage).reversed());
【讨论】:
以上是关于arraylist数组排序的主要内容,如果未能解决你的问题,请参考以下文章
根据字符串数组顺序对 ArrayList 重新排序 - Java