Collections.reverse(list); 实现list集合逆序排列
List list1 = Collections.copy(list); 复制
1.默认情况下(sort)
public static void main(String[] args) {
List<String> list = Arrays.asList(
"浙江移动", "江苏移动", "浙江电信", "上海移动", "北京移动", "浙江联通");
Collections.sort(list);
System.out.println(StringUtils.join(list.toArray(), ","));
}
运行结果:
上海移动,北京移动,江苏移动,浙江电信,浙江移动,浙江联通
public int compare(Object o1, Object o2) 返回一个基本类型的整型
如果要按照升序排序,
则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)
如果要按照降序排序
则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数)
if (date_string_1.compareTo(date_string_2) > 0) {
System.out.println("日期1比日期2晚");
} else {
System.out.println("日期1比日期2早");
}
2.按汉字拼音升序
public static void main(String[] args) {
List<String> list = Arrays.asList(
"浙江移动", "江苏移动", "浙江电信", "上海移动", "北京移动", "浙江联通");
Collections.sort(list, Collator.getInstance(java.util.Locale.CHINA));
System.out.println(StringUtils.join(list.toArray(), ","));
}
运行结果:
北京移动,江苏移动,上海移动,浙江电信,浙江联通,浙江移动
3.逆序排序(reverse)
public static void main(String[] args) {
List<String> list = Arrays.asList(
"浙江移动", "江苏移动", "浙江电信", "上海移动", "北京移动", "浙江联通");
Collections.sort(list, Collator.getInstance(java.util.Locale.CHINA));
Collections.reverse(list); //反转整个数组
System.out.println(StringUtils.join(list.toArray(), ","));
}
运行结果:
浙江移动,浙江联通,浙江电信,上海移动,江苏移动,北京移动
4.混排--重新洗牌(Shuffling)
public static void main(String[] args) {
List<String> list = Arrays.asList(
"浙江移动", "江苏移动", "浙江电信", "上海移动", "北京移动", "浙江联通");
Collections.shuffle(list); //随机排序
System.out.println(StringUtils.join(list.toArray(), ","));
Collections.shuffle(list); //随机排序
System.out.println(StringUtils.join(list.toArray(), ","));
}
运行结果:
浙江电信,浙江移动,上海移动,江苏移动,浙江联通,北京移动
浙江移动,江苏移动,北京移动,上海移动,浙江电信,浙江联通
5.循环移动(rotate)
public static void main(String[] args) {
List<String> list = Arrays.asList(
"浙江移动", "江苏移动", "浙江电信", "上海移动", "北京移动", "浙江联通");
Collections.rotate(list, 1); //向右移动1
System.out.println(StringUtils.join(list.toArray(), ","));
Collections.rotate(list, -2); //向左移动2
System.out.println(StringUtils.join(list.toArray(), ","));
}
运行结果:
浙江联通,浙江移动,江苏移动,浙江电信,上海移动,北京移动
江苏移动,浙江电信,上海移动,北京移动,浙江联通,浙江移动
6.换位(swap)
public static void main(String[] args) {
List<String> list = Arrays.asList(
"浙江移动", "江苏移动", "浙江电信", "上海移动", "北京移动", "浙江联通");
Collections.swap(list, 0, 1); //向右移动1
System.out.println(StringUtils.join(list.toArray(), ","));
}
运行结果:
江苏移动,浙江移动,浙江电信,上海移动,北京移动,浙江联通
Collections集合排序方法
最新推荐文章于 2024-04-28 16:42:19 发布