`
yshao81710
  • 浏览: 93021 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对List进行排序

J# 
阅读更多

/**************解读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);

}

 

分享到:
评论

相关推荐

    java 使用Collections类对List的排序操作

    本文将深入探讨如何使用 `Collections` 类对 List 进行排序操作。 首先,让我们了解 `List` 排序的基本概念。在 Java 中,`List` 是接口,它继承了 `Collection` 接口,并添加了顺序相关的操作。常见的 `List` 实现...

    java List中对象多属性排序及各属性排序设置

    本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和自定义比较器(Comparator)来完成的,对于复杂的数据排序需求具有很高的灵活性。...

    java List 排序 Collections.sort

    当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...

    Java对List进行排序的两种实现方法

    在Java编程中,对List进行排序是常见的操作,特别是在处理数据集合时。本文将详细介绍两种在Java中对List进行排序的方法:实体类实现Comparable接口和使用Comparator接口。 首先,我们来了解一下基本背景。Java的`...

    aviator 实现 List 的求和、排序、最大、最小值

    在Java应用中,Aviator 特别适合用于数据分析和处理,例如对 List 中的数据进行求和、排序、找出最大值和最小值等操作。在给定的“aviator 实现 List 的求和、排序、最大、最小值”的主题中,我们将深入探讨如何利用...

    数组排序 list

    `sort`函数位于`algorithm`头文件中,它可以对任何可迭代的容器(如`list`)进行排序,只要容器中的元素可以比较大小即可。下面是一个基本的示例,展示如何对`list`进行排序: ```cpp #include #include &lt;list&gt; #...

    C# xml处理和排序

    - **排序后的XML保存**:对List排序后,可以将其数据保存回XML文件,确保元素按照新的顺序排列。 通过以上方法,C#开发者可以高效地处理XML文档,同时利用List的排序功能对数据进行组织和管理。在实际项目中,这两...

    C#对list列表进行随机排序的方法

    总的来说,C#中对list列表进行随机排序的方法主要依赖于随机数生成器,通过生成随机索引并插入元素,可以轻松实现列表的随机化。这种技巧在各种场景中都很有用,比如模拟随机事件、游戏中的随机生成等。希望这个方法...

    java中list排序

    在 Java 中,对 List 排序可以使用 Collections.sort(list) 方法,但是这种方法只能对基本类型的 List 进行排序,如果 List 中包含的是对象,那么这种方法就不行了。这时需要使用Comparator接口来实现排序。 ...

    List集合排序222222

    导入jar 包 调用 String[] arr1 = new String[1]; ... 参数1 排序的集合 参数2 排序的字段(与定义字段一致) 可多个 参数3 排序方式(asc desc) 暂时只支持String 和int的排序 可能有些BUG 敬请谅解

    按照规则,对list排序

    * 对传入的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, ...

    c# List类排序方法

    在了解如何对`List&lt;T&gt;`进行排序之前,我们先来看看`List&lt;T&gt;`提供的排序方法。`List&lt;T&gt;`类中包含一个名为`Sort`的方法,用于对List中的元素进行排序。`Sort`方法有多个重载版本,其中最简单的一个是不带任何参数的...

    List 对象属性排序

    在Java编程中,经常需要对`List`集合中的对象按照特定属性进行排序。传统的方法是在每个实体类中重写`Comparable`接口或提供比较器(`Comparator`),这不仅增加了代码量,而且降低了代码的可维护性和复用性。为了...

    Android里List时间升序排序

    在我们的例子中,`String`类已经实现了`Comparable&lt;String&gt;`接口,因此我们可以直接对`List&lt;String&gt;`进行排序。然而,`Collections.sort()`是基于字符串的自然顺序进行排序,即按照Unicode字符的编码顺序比较字符串...

    MFC实现ListControl排序

    为此,你需要捕获`NMHDR`类型的`HD_NOTIFY`消息,当用户点击列头时,调用`SetColumnOrderArray`更新列顺序,并对数据进行排序。 6. **重新排序数据**:在用户触发排序后,你需要遍历数据结构,根据新的列排序顺序...

    C# List OrderBy 动态多字段排序

    `OrderBy` 方法是 LINQ(Language Integrated Query) 提供的一个非常方便的排序工具,它允许我们按照一种或多种字段对数据进行升序排序。在某些情况下,我们可能需要根据动态指定的字段进行排序,这在处理复杂数据...

    ListCtrl控件排序类及演示程序

    这需要对数据访问进行同步,防止多线程间的竞态条件。 5. **事件处理**:当用户点击列头时,程序需要捕获这个事件并触发排序。排序类可能包含事件处理器来响应这些事件,并启动排序过程。 6. **反馈与更新**:排序...

    Java对List多个排序、查询条件的处理

    在Java编程中,对List进行多个排序和查询条件的处理是一项常见的任务,特别是在处理数据集合时。本篇文章将深入探讨如何使用Java实现这些操作,并基于给出的`GroupFilterSortUtils.java`文件,我们可以推断这是一个...

    JAVA SortList 通用排序类

    JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。

Global site tag (gtag.js) - Google Analytics