导航:首页 > 编程语言 > java重排序

java重排序

发布时间:2025-03-16 21:31:03

java:自定义一个顺序,然后对List按照该顺序排序。。

在Java中,如果你想对一个List按照自定义顺序进行排序,可以使用Collections.sort(List list, Comparator c)方法。这里的关键在于如何定义Comparator接口的具体实现,以适应你的排序需求。比如,如果你想根据字符串长度对字符串行表进行排序,你可以这样写:

Collections.sort(list, new Comparator() {
public int compare(String o1, String o2) {
int result = o1.length() - o2.length();
return result;
}
});

这里,我们定义了一个匿名内部类实现Comparator接口,并重写了compare方法。在compare方法中,我们比较了两个字符串的长度,如果o1的长度大于o2,则返回正数;如果o1的长度小于o2,则返回负数;如果两者长度相等,则返回0。注意,返回一个int值是必须的,它决定了排序的顺序。

同样,如果你想要根据字符串中特定字符的位置进行排序,例如按照第一个字符进行排序,你可以这样做:

Collections.sort(list, new Comparator() {
public int compare(String o1, String o2) {
int result = o1.charAt(0) - o2.charAt(0);
return result;
}
});

这里,我们比较了两个字符串的第一个字符,如果o1的第一个字符大于o2的第一个字符,则返回正数;如果小于,则返回负数;如果相等,则返回0。通过这种方式,你可以根据任何你需要的规则对列表进行排序。

总之,使用Collections.sort(List list, Comparator c)方法并自定义Comparator的compare方法,可以让你灵活地对任何类型的列表按照自定义规则进行排序,这在实际开发中非常有用。

Ⅱ java中如何对数组和集合进行排序

在Java中,对集合进行排序可以使用Collections.sort方法。此方法不仅适用于中文、字母和数字,还能处理对象的排序。当比较对象时,需要让该类实现Comparable接口。下面是一个示例:

假设有一个名为dataMap的集合,需要对其进行排序。通过创建一个Comparator接口的实现类,并重写compare方法,可以实现自定义的排序逻辑。具体代码如下:

java

Collections.sort(dataMap, new Comparator<Map>() {

@Override

public int compare(Map lhs, Map rhs) {

switch (whichsort) {

case System_OpenPosition_Sort_Currency:

String d2 = (String) rhs.get("Instrument");

String d1 = (String) lhs.get("Instrument");

if (d2 != null && d1 != null) {

int flag = d1.compareTo(d2);

if (flag == 0) {

Double d3 = (Double) rhs.get("OpenPrice");

Double d4 = (Double) lhs.get("OpenPrice");

if (d3 != null && d4 != null) {

int flag2 = d4.compareTo(d3);

if (flag2 == 0) {

String d5 = (String) rhs.get("BuySell");

String d6 = (String) lhs.get("BuySell");

// 文字排序

if (d5 != null && d6 != null) {

return d6.compareTo(d5);

}

}

return d4.compareTo(d3);

}

} else {

return flag;

}

// return d1.compareTo(d2);

}

break;

// 其他case...

}

return 0;

}

});

在这个示例中,通过switch语句根据不同的排序条件进行判断。如果需要对特定字段进行排序,可以使用get方法获取对应的值,然后进行比较。这里展示了如何对字符串和数字进行比较,以及如何对字符串进行字典顺序比较。

需要注意的是,Comparator接口的compare方法返回一个int值,用于表示两个对象的相对顺序。如果返回值小于0,则lhs在rhs之前;如果返回值大于0,则lhs在rhs之后;如果返回值等于0,则两者相等。

总之,通过实现Comparable接口或使用Comparator接口,Java提供了灵活的排序机制,可以根据具体需求对集合中的元素进行排序。

阅读全文

与java重排序相关的资料

热点内容
单片机测电感电容 浏览:165
android在子线程中更新ui 浏览:694
算法分析师面试有什么要求 浏览:994
容器算法大全图解 浏览:69
cad后置命令失效 浏览:692
杀手阻击存档文件夹是哪一个 浏览:212
禁书pdf 浏览:920
没用app语音智能提醒怎么设置 浏览:502
linuxwiki安装 浏览:680
隔墙算法 浏览:173
安卓手机为什么app不通知 浏览:550
申请云服务器购买费用 浏览:115
云服务器镜像下载到本地 浏览:4
电脑文件夹名有横杠 浏览:154
无印良品压缩纸膜 浏览:753
完全随机算法 浏览:31
怎么看文件是否是日语解压 浏览:353
电影打分python代码 浏览:350
androidjni获取签名 浏览:111
解压文件电脑上哪里找 浏览:447