java对数字排序_java-用数字对对数组排序

好吧,假设我有一个看起来像这样的对象数组:

obj(从,到)

我想通过比较从和到排序该数组.我想做的一个例子:

假设我有带有这些参数的对象

(0,2)(2,4)(0,3)(4,5)(2,3)

我希望对象按此顺序排序:

(0,2)(0,3)(2,3)(2,4)(4,5)

我想比较前两个“ from”变量,将下一个放在前面.如果它们相等,那么我想比较第二对数字.为此,我创建了一个compare方法

public int compare (EdgeI e1, EdgeI e2) {

if(e1.from < e2.from) { return -1; }

else if(e1.from == e2.from) {

if(e1.to < e2.to) { return -1; }

else if(e1.to == e2.to) { return 0; }

else if(e1.to > e2.to) { return 1; }

}

return 1;

}

这行得通吗?如果是这样,我将如何在数组中运行这种排序?

谢谢你的帮助.

编辑

public class mySorter implements Comparator {

public int compare(EdgeI e1, EdgeI e2) {

if(e1.from < e2.from) { return -1; }

else if(e1.from == e2.from) {

if(e1.to < e2.to) { return -1; }

else if(e1.to == e2.to) { return 0; }

else if(e1.to > e2.to) { return 1; }

}

return 1;

}

public void sorterM () {

Collections.sort(tet2, new mySorter());

}

}

我收到以下错误消息:集合无法解决,而tet2无法解决. Tet2是另一个类别中的List列表公众.

解决方法:

您可以做的是创建一个实现Comparator< Edge>的类.然后,您可以使用compare方法从接口实现该方法.

完成此操作后,可以使用比较器通过Collections.sort()对Edge对象列表进行排序.

看起来像这样:

import java.util.Collections;

import java.util.List;

import java.util.Comparator;

public class EdgeComparator implements Comparator {

public int compare(Edge l, Edge r) { ... }

}

void yourCode() {

List edges = ...;

Collections.sort(edges, new EdgeComparator());

//edges now contains the sorted edges

}

如果您有数组而不是列表,则可以使用与Collections.sort相同的方式使用Array.sort.

标签:arraylist,java,sorting

来源: https://codeday.me/bug/20191127/2074795.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值