java 实现ArrayList的sort

java怎么做ArrayList<Job>的sort??Job(inta,intb,intc),可不可以做2个不同的sort一个是按a的顺序排序另一个是按c的顺序排序??... java怎么做ArrayList<Job>的sort?? Job(int a,int b,int c), 可不可以做2个不同的sort一个是按a的顺序排序 另一个是按c的顺序排序??谢谢 展开
 我来答
pieryon
推荐于2016-11-04 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166873
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
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();
}
}
地瓜说机
2017-09-06 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2.3万
采纳率:91%
帮助的人:1.2亿
展开全部
在排序中,最重要的是自己实现自己的比较的行数,即是implements Comparator
实现方法 public int compare(Object o1, Object o2) 最为重要..

举个例子:
package book.arrayset;

import java.util.Comparator;

/**
* 整数比较器,将整数按降序排列
*/
class MyIntComparator implements Comparator{

/**
* o1比o2大,返回-1;o1比o2小,返回1。
*/
public int compare(Object o1, Object o2) {
int i1 = ((Integer)o1).intValue();
int i2 = ((Integer)o2).intValue();
if (i1 < i2){
return 1;
}
if (i1 > i2){
return -1;
}
return 0;
}
}

//上面的为比较的函数实现,下面真正的添加数据,

//通过调用上面的比较函数实现自定义排序的功能

package book.arrayset;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
* 对List中的元素排序
*/
public class SortList {

public static void output(List list){
if (list == null){
return;
}
for (int i=0; i<list.size(); i++){
System.out.print(list.get(i).toString() + " ");
}
System.out.println();
}

public static void main(String[] args) {
List list = new ArrayList();
list.add(new Integer(5));
list.add(new Integer(8));
list.add(new Integer(1));
list.add(new Integer(3));
list.add(new Integer(2));
list.add(new Double(3.1));
System.out.println("list开始状态");
SortList.output(list);
//Collections.sort方法将用默认比较器排列list的元素
Collections.sort(list);
System.out.println("list被默认比较器排序后的状态");
SortList.output(list);
//下面将list的元素按降序排列
Collections.sort(list, new MyIntComparator());
System.out.println("list被自定义比较器排序后的状态");
SortList.output(list);

//因此,对于任意自定义类的对象,当保存在集合类容器中后,如果需要对它们进行排序,
//需要自己提供适应于自定义类的比较器,自定义比较器必须实现Comparator接口。
//然后采用Collections.sort(list, comparator);方法对容器进行排序。
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fylsh
2013-04-13 · TA获得超过950个赞
知道小有建树答主
回答量:1472
采纳率:0%
帮助的人:1053万
展开全部
用集合工具类Collections.sort(list,Comparable),实现一个Comparable接口即可。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小小韩梅梅
2013-12-16 · TA获得超过125个赞
知道小有建树答主
回答量:383
采纳率:0%
帮助的人:69万
展开全部
可以使用Collections工具,可以设置两个比较器 一个是根据是a 一个是根据

定义比较器:
public class ComparatorListSort implements Comparator {

public int compare(Job o1, Job o2) {
if (((Integer) o1).intValue() > ((Integer) o2).intValue()) {
return -1;
} else if (((Integer) o1).intValue() < ((Integer) o2).intValue()) {
return 1;
} else {
return 0;
}

}
}

排序:

//下面将list的元素按降序排列
Comparator comparator = new ComparatorListSort();
Collections.sort(list, comparator);
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
o氧气O2
2013-04-14 · TA获得超过237个赞
知道答主
回答量:75
采纳率:0%
帮助的人:19.6万
展开全部
自己写啊,冒泡算法,排序算法等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式