/**************解读java.util.Collections 、java.util.Comparator************************/
对List进行排序
List<String> list = new ArrayList<String>();
list.add("ds");
list.add("cd");
list.add("ec");
list.add("gt");
Collections.sort(list);
for(String s : list){
System.out.println(s);
}
其中Collections.sort(list)是对List的进行排序的,查看sort方法:
public static <T extends Comparable<? super T>> void sort(List<T> list) {
Object[] a = list.toArray();
Arrays.sort(a);
ListIterator<T> i = list.listIterator();
for (int j=0; j<a.length; j++) {
i.next();
i.set((T)a[j]);
}
}
可以看出,此方法是通过把List转换成一个Object[]的对象。然后使用Arrays的sort方法进行排序
最后把排序好的Object[]对象set到list中
Object[] o = list.toArray();
Arrays.sort(o);
for(int i=0;i<o.length;i++){
list.set(i, (String) o[i]);
}
for(String s : list){
System.out.println(s);
}
/********************扩展排序规则********************************/
--定义自己的类
MyObject.java文件:-------------------------------
public class MyObject{
String name;
int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
扩展Comparator compare方法:
class Mycomparator implements Comparator{
public int compare(Object o1,Object o2) {
MyObject p1=(MyObject)o1;
MyObject p2=(MyObject)o2;
int a=p1.getAge();
int b=p2.getAge();
if(a<b)
return 0;
else
return 1;
}
}
--测试方法
public static void main(String[] args){
ArrayList list = new ArrayList();
list.add(new MyObject("aa",28));
list.add(new MyObject("bb",23));
Comparator comp = new Mycomparator();
Collections.sort(list,comp);
}
分享到:
相关推荐
本文将深入探讨如何使用 `Collections` 类对 List 进行排序操作。 首先,让我们了解 `List` 排序的基本概念。在 Java 中,`List` 是接口,它继承了 `Collection` 接口,并添加了顺序相关的操作。常见的 `List` 实现...
本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和自定义比较器(Comparator)来完成的,对于复杂的数据排序需求具有很高的灵活性。...
当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...
在Java编程中,对List进行排序是常见的操作,特别是在处理数据集合时。本文将详细介绍两种在Java中对List进行排序的方法:实体类实现Comparable接口和使用Comparator接口。 首先,我们来了解一下基本背景。Java的`...
在Java应用中,Aviator 特别适合用于数据分析和处理,例如对 List 中的数据进行求和、排序、找出最大值和最小值等操作。在给定的“aviator 实现 List 的求和、排序、最大、最小值”的主题中,我们将深入探讨如何利用...
`sort`函数位于`algorithm`头文件中,它可以对任何可迭代的容器(如`list`)进行排序,只要容器中的元素可以比较大小即可。下面是一个基本的示例,展示如何对`list`进行排序: ```cpp #include #include <list> #...
- **排序后的XML保存**:对List排序后,可以将其数据保存回XML文件,确保元素按照新的顺序排列。 通过以上方法,C#开发者可以高效地处理XML文档,同时利用List的排序功能对数据进行组织和管理。在实际项目中,这两...
总的来说,C#中对list列表进行随机排序的方法主要依赖于随机数生成器,通过生成随机索引并插入元素,可以轻松实现列表的随机化。这种技巧在各种场景中都很有用,比如模拟随机事件、游戏中的随机生成等。希望这个方法...
在 Java 中,对 List 排序可以使用 Collections.sort(list) 方法,但是这种方法只能对基本类型的 List 进行排序,如果 List 中包含的是对象,那么这种方法就不行了。这时需要使用Comparator接口来实现排序。 ...
导入jar 包 调用 String[] arr1 = new String[1]; ... 参数1 排序的集合 参数2 排序的字段(与定义字段一致) 可多个 参数3 排序方式(asc desc) 暂时只支持String 和int的排序 可能有些BUG 敬请谅解
* 对传入的list进行分组排序 * list里面数据格式 [01-01-开头.txt, 01-02-简介.jpg, 11-01-尾声.jpg, 11-03-空白.jpg, 11-04-空白2.jpg, 11-06-空白1.jpg, 11-02-答谢语.txt, 02-01-标题.jpg, 02-09-标题555.jpg, ...
在了解如何对`List<T>`进行排序之前,我们先来看看`List<T>`提供的排序方法。`List<T>`类中包含一个名为`Sort`的方法,用于对List中的元素进行排序。`Sort`方法有多个重载版本,其中最简单的一个是不带任何参数的...
在Java编程中,经常需要对`List`集合中的对象按照特定属性进行排序。传统的方法是在每个实体类中重写`Comparable`接口或提供比较器(`Comparator`),这不仅增加了代码量,而且降低了代码的可维护性和复用性。为了...
在我们的例子中,`String`类已经实现了`Comparable<String>`接口,因此我们可以直接对`List<String>`进行排序。然而,`Collections.sort()`是基于字符串的自然顺序进行排序,即按照Unicode字符的编码顺序比较字符串...
为此,你需要捕获`NMHDR`类型的`HD_NOTIFY`消息,当用户点击列头时,调用`SetColumnOrderArray`更新列顺序,并对数据进行排序。 6. **重新排序数据**:在用户触发排序后,你需要遍历数据结构,根据新的列排序顺序...
`OrderBy` 方法是 LINQ(Language Integrated Query) 提供的一个非常方便的排序工具,它允许我们按照一种或多种字段对数据进行升序排序。在某些情况下,我们可能需要根据动态指定的字段进行排序,这在处理复杂数据...
这需要对数据访问进行同步,防止多线程间的竞态条件。 5. **事件处理**:当用户点击列头时,程序需要捕获这个事件并触发排序。排序类可能包含事件处理器来响应这些事件,并启动排序过程。 6. **反馈与更新**:排序...
在Java编程中,对List进行多个排序和查询条件的处理是一项常见的任务,特别是在处理数据集合时。本篇文章将深入探讨如何使用Java实现这些操作,并基于给出的`GroupFilterSortUtils.java`文件,我们可以推断这是一个...
JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。