集合排序的2种方式
Seal^_^ 2024-08-18 12:35:02 阅读 70
集合排序的2种方式
1、使用有序集合进行排序1.1 TreeSet1.2 TreeMap
2、使用Collections.sort()进行排序3、总结
💖The Begin💖点点关注,收藏不迷路💖
|
本文将介绍两种主要的集合排序方式:使用有序集合(如TreeSet或TreeMap)和使用无序集合(如List)结合Collections.sort()方法。
1、使用有序集合进行排序
Java中的有序集合,如TreeSet和TreeMap,会自动对添加的元素进行排序。这种排序是基于元素的自然顺序(实现了Comparable接口)或者通过提供的Comparator比较器来完成的。
1.1 TreeSet
TreeSet是一个不包含重复元素的集合,它实现了NavigableSet接口,可以通过元素的自然顺序或者创建TreeSet时传入的Comparator进行排序。
示例:
<code>import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<>();
set.add(3);
set.add(1);
set.add(2);
// 遍历TreeSet,元素将按照自然顺序排列
for (Integer num : set) {
System.out.print(num + " ");
}
}
}
输出:
1 2 3
1.2 TreeMap
TreeMap是一个基于红黑树的NavigableMap实现,它根据键的自然顺序或者创建TreeMap时传入的Comparator进行排序。
示例:
import java.util.TreeMap;
public class TreeMapExample {
public static void main(String[] args) {
TreeMap<String, Integer> map = new TreeMap<>();
map.put("Zebra", 1);
map.put("Apple", 2);
map.put("Banana", 3);
// 遍历TreeMap,键将按照自然顺序排列
for (String key : map.keySet()) {
System.out.println(key + " -> " + map.get(key));
}
}
}
输出:
Apple -> 2
Banana -> 3
Zebra -> 1
2、使用Collections.sort()进行排序
对于无序集合,如ArrayList,我们可以使用Collections.sort()方法来进行排序。这个方法可以接收一个实现了List接口的集合,并对其进行排序。排序可以是基于元素的自然顺序(元素需要实现Comparable接口),或者通过提供一个Comparator比较器来完成。
示例:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListSortExample {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(2);
// 使用Collections.sort()进行排序
Collections.sort(list);
// 遍历List,元素将按照自然顺序排列
for (Integer num : list) {
System.out.print(num + " ");
}
}
}
输出:
1 2 3
3、总结
Java提供了两种主要的方式来对集合进行排序:
1、使用有序集合(如TreeSet和TreeMap)和使用无序集合结合Collections.sort()方法。
2、有序集合在添加元素时自动进行排序,而无序集合则需要显式调用Collections.sort()方法。
💖The End💖点点关注,收藏不迷路💖
|
上一篇: 关于如何解决IDEA中同一个src下多个类中之一运行时自动报错其他类中的问题导致想要运行的类无法正常运行的问题的解决思路
下一篇: 华为OD机试 - 剩余银饰的重量(Java & JS & Python & C & C++)
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。