如何对List集合中的数据进行排列

如题所述

第1个回答  2017-04-30
方法一:实现Comparable接口排序package collsort.comparable;
package com.cvicse.sort.comparable;

public class Cat implements Comparable<Cat> {
private int age;
private String name;

public Cat(int age, String name) {
this.age = age;
this.name = name;
}

public int getAge() {
return age;
第2个回答  2015-11-13
[size=large][color=red]要对List排序,你要对List里装的这种类型的类实现排序接口(Comparable).
举个例子:

下面这个例子是对List<MyObject>进行排序.使用Collections.sort(List list);方法,此方法会调用MyObject的compareTo方法.所以在MyObject类定义里要实现compareTo方法.

Java代码
public class ListSort {

/**
* main()
* 2010-4-2,下午09:25:57
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<MyObject> lists = new ArrayList<MyObject>();
MyObject obj1 = new MyObject("d");
MyObject obj2 = new MyObject("a");
lists.add(obj1);
lists.add(obj2);
Collections.sort(lists);
for (MyObject myObject : lists) {
System.out.println(myObject.getContent());
}
}

}
class MyObject implements Comparable<MyObject>{
private String content;
public MyObject(String _content) {
this.content = _content;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

public int compareTo(MyObject obj) {
// TODO Auto-generated method stub
if (null == obj) return 1;
else {
return this.content.compareTo(obj.content);
}

}

}

下面是Collections.sort方法

Java代码
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]);
}
}

实际上我们的MyObject类的方法compareTo是在Arrays.sort()中被调用的...
请看..

Java代码
public static void sort(Object[] a) {
Object[] aux = (Object[])a.clone();
mergeSort(aux, a, 0, a.length, 0);
}

Java代码
private static void mergeSort(Object[] src,
Object[] dest,
int low,
int high,
int off) {
int length = high - low;

// Insertion sort on smallest arrays
if (length < INSERTIONSORT_THRESHOLD) {
for (int i=low; i<high; i++)
for (int j=i; j>low &&
((Comparable) dest[j-1]).compareTo(dest[j])>0; j--)
swap(dest, j, j-1);
return;
}

// Recursively sort halves of dest into src
int destLow = low;
int destHigh = high;
low += off;
high += off;
int mid = (low + high) >> 1;
mergeSort(dest, src, low, mid, -off);
mergeSort(dest, src, mid, high, -off);

// If list is already sorted, just copy from src to dest. This is an
// optimization that results in faster sorts for nearly ordered lists.
if (((Comparable)src[mid-1]).compareTo(src[mid]) <= 0) {
System.arraycopy(src, low, dest, destLow, length);
return;
}

// Merge sorted halves (now in src) into dest
for(int i = destLow, p = low, q = mid; i < destHigh; i++) {
if (q >= high || p < mid && ((Comparable)src[p]).compareTo(src[q])<=0)
dest[i] = src[p++];
else
dest[i] = src[q++];
}
}
[/color][/size]

当然,这是一种实现排序的办法.还有一种是实现Comparator,实现这个接口,然后使用
Collections.sort(List list,Comparator c);这个方法来排序..本回答被提问者采纳

list如何排序
1、首先我们定义一个list,然后里面存储一些字符串,然后循环输出,这时候就是list默认的排序 2、如果我们想要对其进行排序,可以采用Collections类中的排序方法,Collections.sort(list):或者我们可以采用Collections.reverse(list)对集合进行倒序排列,如果上面的排序都不能满足我们的要求呢,那么我们还可以采用...

pythonlist怎么排序
`sort`方法是Python列表的一个内置方法,可以直接对列表进行排序。它会改变原来的列表,使其按照特定的顺序排列。默认情况下,`sort`方法按照升序排列列表中的元素。示例:python lst = [3, 1, 4, 1, 5, 9, 2]lst.sort print # 输出:[1, 1, 2, 3, 4, 5, 9]二、使用sorted函数进行...

python要如何实现(列表)排序?
使用sorted()函数,可对list进行排序,返回一个新列表,按元素从小到大排列。而list.sort()方法则直接在原列表中排序,改变原列表顺序,也是从小到大。在sorted()与list.sort()中,可通过指定参数实现自定义排序。如可调用reverse参数,反转排序顺序,由小变大变为由大变小。key参数则允许指定排序规则...

python list怎么排序
首先,调用`aList.sort()`函数:python aList.sort();这会将列表`aList`中的数字和字符串按照各自的自然顺序进行排序。对于数字,它会从小到大排列;对于字符串,它会按照字母顺序排列。排序后,列表`aList`的内容将变为:python print("List : ", aList)这将输出排序后的结果。如果你想要保持原始...

python列表list元素降序排列两种方法
首先,sort()方法是列表对象自带的排序功能,要进行降序排列,只需要在调用时将reverse参数设置为True。其基本语法是:listObj.sort(reverse=True)这种方法的优点是一旦调用,会直接修改原列表,使得列表中的元素按照降序排列。另一种是使用sorted()函数,它是一种更为灵活的排序方式。我们需要将需要排序的...

java ArrayList 排序
在测试类`TestSort`的`main`方法中,首先创建了一个`ArrayList`,然后使用for循环填充数据。接着,我们调用`Collections.sort`方法,传入`list`和`MyComparator`实例,对列表进行排序。排序后,遍历并打印出排序后的日期。通过这种方式,我们可以根据日期对`ArrayList`进行升序或降序排列,以直观展示书籍按照...

java中list为什么有序?
List的有序主要体现在两个方面:插入顺序和访问顺序。当元素被逐个添加到List中时,它们会按照添加的先后顺序排列。这种有序性使得我们能够准确地知道元素在列表中的位置,从而实现高效地访问和查找。在实现上,List主要有两种类型:ArrayList和LinkedList。这两种实现方式都充分利用了有序性,分别以不同的...

软件测试|Python如何将列表从大到小排序
1. sorted()函数Python的sorted()函数能对列表进行排序,通过设置reverse=True参数,可以轻松实现降序排列。2. list.sort()方法list.sort()方法同样适用于列表,只需设置reverse=True,即可在原列表上进行降序排序,无需返回新列表。3. 自定义比较函数若需根据自定义逻辑排序,可利用sorted()的key参数,...

python列表元素多少进行排序(python中的列表排序)
如何对python编程中的列表元素按成绩高低进行排序呢?最简单的办法就是需要指定列表排序方法中的参数“key”。代码如下:第一种:stu=[['john',79],['mame',96],['herry',85],['lili',95],['ziling',63]]def takeSecond(elem):return elem[1]stu.sort(key=takeSecond,,reverse=True)print(...

怎样使多行数据实现行升序排列?
把数组放到list 集合里,就直接调用list<>集合里的排序方法了。如果循序不对.里面在加一个反转就可以了。

相似回答