当前位置:首页 » 编程语言 » java对arraylist排序

java对arraylist排序

发布时间: 2022-06-23 02:47:02

java ArrayList 降序排序问题

public static void main(String[] args) {

ArrayList<Integer> arr=new ArrayList<>();
arr.add(89);
arr.add(78);
arr.add(56);
arr.add(92);
arr.add(76);

//升序排列;
Collections.sort(arr);

//逆序输出
Collections.reverse(arr);
for(int i=0;i<arr.size();i++){
//这就是你要的效果
System.out.println("0"+i+" "+arr.get(i));
}

}

Ⅱ java arraylist 按照对象的属性排序

List中的元素是对象的话,若要按该List中元素的某个属性进行排序,那么应该重写里面元素的hashCode和equals方法,然后再排序。比如该问题要重写course的hashCode和equals方法

Ⅲ java如何对Arraylist数组进行排序(用comparable)

看代码:

importjava.util.ArrayList;
importjava.util.Arrays;
importjava.util.Collections;

publicclassDemo{

publicstaticvoidmain(String[]args)throwsException{
Pair[]pairs={
newPair(0,1),
newPair(2,9),
newPair(7,0),
newPair(8,8),
newPair(8,6),
newPair(9,2),
newPair(1,5),
newPair(8,2),
newPair(9,15),
newPair(9,5)
};
ArrayList<Pair>pairList=newArrayList<>(Arrays.asList(pairs));

System.out.println("排序前:");
System.out.println(Arrays.toString(pairs));
Arrays.sort(pairs);//对数组排序
System.out.println("排序后:");
System.out.println(Arrays.toString(pairs));

System.out.println("排序前:");
System.out.println(pairList);
Collections.sort(pairList);//对ArrayList排序
System.out.println("排序后:");
System.out.println(pairList);
}
}

//继承Comparable接口排序该类是“可排序的”
//<>里面的是排序时与当前实例进行比较的实例的类型
//一般都和当前实例是同一个类型,比如这里就是Pair的实例和Pair的实例比较
classPairimplementsComparable<Pair>{

publicintleft;
publicintright;

publicPair(intleft,intright){
this.left=left;
this.right=right;
}

@Override
publicStringtoString(){
return"["+left+","+right+"]";
}

//排序规则,先按left排序,再按right排序
@Override
publicintcompareTo(Pairthat){
if(this.left>that.left){
return1;
}elseif(this.left<that.left){
return-1;
}elseif(this.right>that.right){
return1;
}elseif(this.right<that.right){
return-1;
}
return0;
}

}

可以发现先按 left 排序,如果 left 相等,则按 right 排序

Ⅳ java如何对ArrayList中对象按照该对象某属性排序

if(!s1.name.equals(s2.name)){ return s2.name.compareTo(s1.name);}else{//姓名也相同则按学号排序 return s2.id-s1.id;}}}};Student stu1 = new Student (1,"zhangsan","male",28,"cs"); Student stu2 = new Student (2,"lisi","female",19,"cs"); Student stu3 = new Student (3,"wangwu","male",22,"cs"); Student stu4 = new Student (4,"zhaoliu","female",17,"cs"); Student stu5 = new Student (5,"jiaoming","male",22,"cs"); ArrayList<Student> List = new ArrayList<Student>(); List.add(stu1); List.add(stu2); List.add(stu3); List.add(stu4); List.add(stu5); //这里就会自动根据规则进行排序 Collections.sort(List,comparator); display(List);} static void display(ArrayList<Student> lst){ for(Student s:lst) System.out.println(s);}} class Student{int age;int id;String gender; String name;String cs;Student(int id,String name,String gender,int age,String cs){ this.age=age; this.name=name; this.gender=gender; this.id=id; return id+" "+name+" "+gender+" "+age+" "+cs;}} 2.添加 Comparable 接口,重写 compareTo 方法。然后你可以用 TreeSet 结构进行排序。它会自动排序。

Ⅳ Java中怎样对ArrayList集合中的指定列排序

ArrayList
就是一个可以改变大小的一维数组.当然
你可以往ArrayList里放ArrayList或者其它的容器什么的那就用标准的排序方法就行了
用容量类就用Collections.sort
数组就用Arrays.sort
还有什么不清楚直接m我
网络知道最近抽风了
不能回答追问

Ⅵ java ArrayList排序底层是怎么实现的

list是一个集合,可以存入很多种对象类型。如果你存入的都是自定义类,怎么能排序呢。如果你用泛型存入字符串或是数字等,排序就是按照int
string这些类型进行排序,排序方法也有很多种比较法
冒泡法等。如果你想了解排序可以网上看一下各种排序的算法,自己体会下优缺点。

Ⅶ java arraylist 集合排序问题

你可以使用Collections 提供的sort方法对ArrayList进行排序,sort方法提供了一个Comparator接口类型的参数,这个参数中可以自定义排序规则

你可以自定义一个类实现Comparator接口,在里面编写你需要的排序规则,然后通过以下方式排序ArrayList

Collections.sort(arraylist,自定义排序规则对象);

sort
public static <T> void sort(List<T> list,
Comparator<? super T> c)

根据指定比较器产生的顺序对指定列表进行排序。此列表内的所有元素都必须可使用指定比较器相互比较(也就是说,对于列表中的任意
e1 和 e2 元素,c.compare(e1, e2) 不得抛出
ClassCastException)。
此排序被保证是稳定的:不会因调用 sort 而对相等的元素进行重新排序。
排序算法是一个经过修改的合并排序算法(其中,如果低子列表中的最高元素小于高子列表中的最低元素,则忽略合并)。此算法提供可保证的 n log(n) 性能。
指定列表必须是可修改的,但不必是可大小调整的。此实现将指定列表转储到一个数组中,并对数组进行排序,在重置数组中相应位置每个元素的列表上进行迭代。这避免了由于试图原地对链接列表进行排序而产生的
n2 log(n) 性能。

参数:
list - 要排序的列表。
c - 确定列表顺序的比较器。null 值指示应该使用元素的自然顺序。
抛出:
ClassCastException -
如果列表中包含不可使用指定比较器相互比较 的元素。
UnsupportedOperationException
- 如果指定列表的列表迭代器不支持 set 操作。
另请参见:
Comparator

java.util
接口 Comparator<T>

类型参数:
T - 此 Comparator 可以比较的对象类型

Ⅷ Java中的ArrayList怎么进行冒泡排序

java中的ArrayList进行冒泡排序,主要是循环遍历取出数据,然后进行比较排序,如下代码:

packagecom.qiu.lin.he;

importjava.util.ArrayList;

publicclassCeshi{
publicstaticvoidmain(String[]args){
ArrayList<Integer>list=newArrayList<Integer>();
list.add(76);
list.add(4);
list.add(786);
list.add(43);
list.add(21);
list.add(432);
list.add(10);
for(inti=0;i<list.size()-1;i++){
for(intj=1;j<list.size()-i;j++){
Integera;
if(list.get(j-1).compareTo(list.get(j))>0){//比较两个整数的大小

a=list.get(j-1);
list.set((j-1),list.get(j));
list.set(j,a);//交换数据
}
}
}
for(Integers:list){
System.out.println(s.intValue());//输出arraylist的数据
}
}
}

运行结果如下:

Ⅸ java 实现ArrayList的sort

java中可以使用Sort方法,可以对集合中的元素进行排序。Sort有三种重载方法,声明代码如下所示。

public void Sort();
//使用集合元素的比较方式进行排序

public void Sort(IComparer comparer);
//使用自定义比较器进行排序

public void Sort(int index, int count, IComparer comparer)
//使用自定义比较器进行指定范围的排序

注意:为使用Sort方法进行排序,集合中的所有元素必须实现IComparable接口,否则,将抛出异常。

这里介绍使用第一种方法进行简单的排序实例

using System;
using System.Collections;
class Program{
static void Main(string[] args)
{
ArrayList al = new ArrayList();
al.AddRange(new string[8] { "Array1", "Array2", "Array3", "Array5", "Array4", "Array8", "Array7", "Array6" });
al.Sort();
foreach (string s in al)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}

Ⅹ java ArrayList 排序

package com.test; public class BookBean { private String no; private String name; private String date; public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNo() { return no; } public void setNo(String no) { this.no = no; } } 以上为使用的BookBean ------------------------------------------ 下面是排序使用的 比较器 package com.test; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Comparator; public class MyComparator implements Comparator<BookBean> { public int compare(BookBean book1, BookBean book2) { DateFormat df =new SimpleDateFormat("yyyyMMdd"); try { return df.parse(book1.getDate()).compareTo(df.parse(book2.getDate())); } catch (ParseException e) { return 0; } } } -------------------------------------------------------- 下面是测试: import java.util.Collections; import java.util.List; public class TestSort { public static void main(String[] args) { List<BookBean> list = new ArrayList<BookBean>(); for(int i=9;i>0;i--){ BookBean bb = new BookBean(); bb.setDate("2009030"+i); bb.setNo("0"+i); bb.setName("name"+i); System.out.println(bb.getDate()); list.add(bb); } Collections.sort(list,new MyComparator()); System.out.println("after sort:(ASC)"); for(int i=0;i<list.size();i++){ System.out.println(list.get(i).getDate()); } } }

热点内容
wampphp升级 发布:2025-02-05 18:50:53 浏览:918
源码地带 发布:2025-02-05 18:46:37 浏览:613
我的世界服务器怎么骑别人的头 发布:2025-02-05 18:46:32 浏览:89
怎么卸载ftp账号 发布:2025-02-05 18:41:52 浏览:62
SQL指定的服务并未以 发布:2025-02-05 18:40:09 浏览:972
电脑连接不了服务器什么意思 发布:2025-02-05 18:34:46 浏览:355
2015版dw怎么配置站点 发布:2025-02-05 18:33:37 浏览:429
php数组中重复值 发布:2025-02-05 18:16:59 浏览:366
分布式存储优点 发布:2025-02-05 18:15:29 浏览:644
征婚交友源码 发布:2025-02-05 17:45:24 浏览:918