「java集合排序的方法」java集合排序的方法是什么

博主:adminadmin 2022-11-27 05:43:07 50

今天给各位分享java集合排序的方法的知识,其中也会对java集合排序的方法是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中,如何实现集合的升序和降序排列

单纯的字符串或者数字排列可用Collections.sort(object o)方法,这样方便。

如果是要对对象中的某一进行排序,则可实现Comparator接口,复写其中的Compare方法;然后调用Collections.sort(object 0 , Comparator c)方法;

说的只是思路,具体问题可以查看帮助文档。

java怎样对集合按照实体类的字段排序

import java.util.Comparator;

import java.util.TreeSet;

/*

 * 需求:请按照姓名的长度排序

 * 

 * TreeSet集合保证元素排序和唯一性的原理

 * 唯一性:是根据比较的返回是否是0来决定。

 * 排序:

 *  A:自然排序(元素具备比较性)

 *  让元素所属的类实现自然排序接口 Comparable

 *  B:比较器排序(集合具备比较性)

 *  让集合的构造方法接收一个比较器接口的子类对象 Comparator

 */

public class TreeSetDemo {

public static void main(String[] args) {

// 创建集合对象

// TreeSetStudent ts = new TreeSetStudent(); //自然排序

// public TreeSet(Comparator comparator) //比较器排序

// TreeSetStudent ts = new TreeSetStudent(new MyComparator());

// 如果一个方法的参数是接口,那么真正要的是接口的实现类的对象

// 而匿名内部类就可以实现这个东西

TreeSetStudent ts = new TreeSetStudent(new ComparatorStudent() {

@Override

public int compare(Student s1, Student s2) {

// 姓名长度

int num = s1.getName().length() - s2.getName().length();

// 姓名内容

int num2 = num == 0 ? s1.getName().compareTo(s2.getName())

: num;

// 年龄

int num3 = num2 == 0 ? s1.getAge() - s2.getAge() : num2;

return num3;

}

});

// 创建元素

Student s1 = new Student("linqingxia", 27);

Student s2 = new Student("zhangguorong", 29);

Student s3 = new Student("wanglihong", 23);

Student s4 = new Student("linqingxia", 27);

Student s5 = new Student("liushishi", 22);

Student s6 = new Student("wuqilong", 40);

Student s7 = new Student("fengqingy", 22);

Student s8 = new Student("linqingxia", 29);

// 添加元素

ts.add(s1);

ts.add(s2);

ts.add(s3);

ts.add(s4);

ts.add(s5);

ts.add(s6);

ts.add(s7);

ts.add(s8);

// 遍历

for (Student s : ts) {

System.out.println(s.getName() + "---" + s.getAge());

}

}

}

Java中如何对集合排序

Java内建的排序(冒泡):Java集合有两个实现的工具类,Collections和Arrays。Collections针对集合类型。Arrays针对数组。只需要一个为你排序需要的定制的Comparator或Comparable的实现,将其作为参数传给Collections或Arrays的sort方法就行。

可以自己用程序去实现这个排序。用for从原List里面一个一个拿出来比较然后一个新建的List里面去。

楼主看一下参考资料。

java arraylist 集合排序问题

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

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

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

sort

public static T void sort(ListT 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

接口 ComparatorT

类型参数:

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

Java的List怎么排序啊?

用Collections.sort就可以排序,

里面的排序是默认的按自然顺序排列

也就是1,2,3,4这种

参数要求实现了Comparable的数据才能排序,

如果你自己写的类,你就要实现Comparable接口,然后在接口里面自动生成的方法里面

指定排序方法,一般的String Inteneger类都是实现了这个接口的 不用自己操作的。

你可以取看源代码

java中如何对数组和集合进行排序

java中对集合排序,可以使用Collections.sort来进行排序,可以对中文、字母、数字进行排序,当比较的是对象时候,让该类实现comparable接口,示例如下:

Collections.sort(dataMap, new ComparatorMapString, Object() { //排序接口实现方法 @Override public int compare(MapString, Object lhs, MapString, Object rhs) { switch (whichsort) { case System_OpenPosition_Sort_Currency: String d2 = ((String) rhs.get(Instrument)); String d1 = (String) lhs.get(Instrument); if (d2 != null d1 != null) { int flag = d1.compareTo(d2); if (flag == 0) { Double d3 = ((Double) rhs.get(OpenPrice)); Double d4 = (Double) lhs.get(OpenPrice); if (d3 != null d4 != null) { int flag2 = d4.compareTo(d3); if (flag2 == 0) { String d5 = ((String) rhs.get(BuySell)); String d6 = (String) lhs.get(BuySell);//文字排序 if (d5 != null d6 != null) { return d6.compareTo(d5);//返回一个int类型,用来判断是否大于、小于还是等于 } } return d4.compareTo(d3); } } else { return flag; } // return d1.compareTo(d2); }

java集合排序的方法的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java集合排序的方法是什么、java集合排序的方法的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。