- Java教程
- Java - 主页
- Java - 概述
- Java - 环境设置
- Java - 基本语法
- Java - 变量类型
- Java - 基本数据类型
- Java - 基本运算符
- Java 控制语句
- Java - 循环控制
- Java - 决策
- Java - 如果-否则
- Java-开关
- Java - For 循环
- Java - For-Each 循环
- Java - While 循环
- Java - do-while 循环
- Java - 中断
- Java - 继续
- 面向对象编程
- Java - 对象和类
- Java - 方法
- Java - 构造函数
- Java - 访问修饰符
- Java-继承
- Java-多态性
- Java - 重写
- Java-抽象
- Java-封装
- Java - 接口
- Java - 包
- Java - 内部类
- Java 数据类型
- Java - 字符
- Java 文件处理
- Java - 文件和 I/O
- Java 错误与异常
- Java - 异常
- Java多线程
- Java-多线程
- Java同步
- Java-同步
- Java-线程间通信
- Java-线程死锁
- Java-线程控制
- Java网络
- Java-网络
- Java-URL 处理
- Java - 泛型
- Java集合
- Java - 集合
- Java列表接口
- Java - 列表接口
- Java队列接口
- Java - 队列接口
- Java地图接口
- Java - 地图接口
- Java - SortedMap 接口
- Java设置接口
- Java - 设置接口
- Java - SortedSet 接口
- Java数据结构
- Java - 数据结构
- Java-枚举
- Java 集合算法
- Java - 集合
- Java - 迭代器
- Java - 比较器
- Java杂项
- Java - 正则表达式
- Java-序列化
- Java - 发送电子邮件
- Java - Applet 基础知识
- Java - 文档
- Java 有用资源
- Java - 问题与解答
- Java - 快速指南
- Java - 有用的资源
- Java - 讨论
- Java - 示例
Java - 集合算法
集合框架定义了几种可应用于集合和映射的算法。
这些算法在 Collections 类中定义为静态方法。其中一些方法可能会抛出ClassCastException(在尝试比较不兼容类型时发生)或 UnsupportedOperationException (在尝试修改不可修改的集合时发生)。
下表总结了集合框架算法中定义的方法 -
先生。 | 方法及说明 |
---|---|
1 | static int binarySearch(列表列表、对象值、比较器 c) 在根据c排序的列表中搜索值。返回值在列表中的位置,如果未找到值则返回 -1。 |
2 | static int binarySearch(列表列表,对象值) 在列表中搜索值。该列表必须排序。返回值在列表中的位置,如果未找到值则返回 -1。 |
3 | 静态无效复制(列表列表1,列表列表2) 将 list2 的元素复制到 list1。 |
4 | static Enumeration 枚举(Collection c) 返回c 的枚举。 |
5 | 静态无效填充(列表列表,对象obj) 将 obj 分配给列表的每个元素。 |
6 | static int indexOfSubList(列表列表,列表子列表) 在列表中搜索第一次出现的 subList。返回第一个匹配项的索引,如果未找到匹配项,则返回 .1。 |
7 | static int lastIndexOfSubList(列表列表,列表子列表) 在列表中搜索最后一次出现的 subList。返回最后一个匹配项的索引,如果未找到匹配项,则返回 .1。 |
8 | 静态ArrayList列表(枚举enum) 返回包含 enum 元素的 ArrayList。 |
9 | 静态对象 max(集合 c,比较器 comp) 返回由 comp 确定的c中的最大元素。 |
10 | 静态对象最大值(集合c) 返回c中由自然排序确定的最大元素。集合不需要排序。 |
11 | 静态对象 min(集合 c,比较器 comp) 返回由 comp 确定的c中的最小元素。集合不需要排序。 |
12 | 静态对象最小值(集合c) 返回c中由自然排序确定的最小元素。 |
13 | 静态列表 nCopies(int num, 对象 obj) 返回不可变列表中包含的 obj 的 num 个副本。num 必须大于或等于零。 |
14 | 静态布尔replaceAll(列表列表,旧对象,新对象) 将列表中所有出现的旧项替换为新项。如果至少发生了一次替换,则返回 true。返回 false,否则。 |
15 | 静态无效反向(列表列表) 反转列表中的顺序。 |
16 | 静态比较器reverseOrder( ) 返回一个反向比较器。 |
17 号 | 静态无效旋转(列表列表,int n) 将列表向右旋转n位。要向左旋转,请对n使用负值。 |
18 | static void shuffle(列表列表,随机r) 使用r作为随机数源来对列表中的元素进行洗牌(即随机化) 。 |
19 | 静态无效洗牌(列表列表) 随机排列(即随机化)列表中的元素。 |
20 | 静态设置单例(对象 obj) 将 obj 作为不可变集返回。这是将单个对象转换为集合的简单方法。 |
21 | 静态列表 singletonList(Object obj) 将 obj 作为不可变列表返回。这是将单个对象转换为列表的简单方法。 |
22 | 静态映射 singletonMap(对象 k, 对象 v) 返回键/值对 k/v 作为不可变映射。这是将单个键/值对转换为映射的简单方法。 |
23 | static void sort(列表列表,比较器比较) 根据 comp 确定对列表元素进行排序。 |
24 | 静态无效排序(列表列表) 根据列表元素的自然顺序对列表元素进行排序。 |
25 | 静态无效交换(列表列表,int idx1,int idx2) 交换列表中由 idx1 和 idx2 指定的索引处的元素。 |
26 | 静态集合synchronizedCollection(集合c) 返回由c支持的线程安全集合。 |
27 | 静态列表synchronizedList(列表列表) 返回由 list 支持的线程安全列表。 |
28 | 静态映射synchronizedMap(Map m) 返回m支持的线程安全映射。 |
29 | 静态集合synchronizedSet(Set s) 返回由s支持的线程安全集。 |
30 | 静态 SortedMap 同步SortedMap(SortedMap sm) 返回由sm支持的线程安全排序集。 |
31 | 静态 SortedSet 同步SortedSet(SortedSet ss) 返回由ss支持的线程安全集。 |
32 | 静态集合不可修改的集合(集合c) 返回由c支持的不可修改的集合。 |
33 | 静态列表不可修改列表(列表列表) 返回由列表支持的不可修改列表。 |
34 | 静态Map不可修改Map(Map m) 返回由m支持的不可修改的映射。 |
35 | 静态集不可修改集(Set s) 返回由s支持的不可修改的集合。 |
36 | 静态 SortedMap 不可修改SortedMap(SortedMap sm) 返回由sm支持的不可修改的排序映射。 |
37 | 静态 SortedSet 不可修改的SortedSet(SortedSet ss) 返回由ss支持的不可修改的排序集。 |
实施例1
下面是一个示例,演示了使用 LinkedList 添加元素并按相反顺序对其元素进行排序的各种算法。使用迭代器,迭代列表,然后打乱列表,最后检索并打印最小值和最大值。
import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class AlgorithmsDemo { public static void main(String args[]) { // Create and initialize linked list List<Integer< ll = new LinkedList<<(); ll.add(Integer.valueOf(-8)); ll.add(Integer.valueOf(20)); ll.add(Integer.valueOf(-20)); ll.add(Integer.valueOf(8)); // Create a reverse order comparator Comparator<Integer< r = Collections.reverseOrder(); // Sort list by using the comparator Collections.sort(ll, r); // Get iterator Iterator<Integer< li = ll.iterator(); System.out.print("List sorted in reverse: "); while(li.hasNext()) { System.out.print(li.next() + " "); } System.out.println(); } }
输出
List sorted in reverse: 20 8 -8 -20
实施例2
下面是一个示例,演示了使用 LinkedList 添加元素并按自然顺序对其元素进行排序的各种算法。使用迭代器,迭代列表,然后打乱列表,最后检索并打印最小值和最大值。
import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class AlgorithmsDemo { public static void main(String args[]) { // Create and initialize linked list List<Integer> ll = new LinkedList<>(); ll.add(Integer.valueOf(-8)); ll.add(Integer.valueOf(20)); ll.add(Integer.valueOf(-20)); ll.add(Integer.valueOf(8)); // Sort list by using the default comparator Collections.sort(ll); // Get iterator Iterator<Integer> li = ll.iterator(); System.out.print("List sorted: "); while(li.hasNext()) { System.out.print(li.next() + " "); } System.out.println(); Collections.shuffle(ll); // display randomized list li = ll.iterator(); System.out.print("List shuffled: "); while(li.hasNext()) { System.out.print(li.next() + " "); } System.out.println(); System.out.println("Minimum: " + Collections.min(ll)); System.out.println("Maximum: " + Collections.max(ll)); } }
输出
List sorted: -20 -8 8 20 List shuffled: -20 -8 20 8 Minimum: -20 Maximum: 20
实施例3
下面是一个示例,演示了使用 LinkedList 添加 String 元素并按自然顺序对其元素进行排序的各种算法。打印列表,然后打乱列表,最后检索并打印最小值和最大值。
import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class AlgorithmsDemo { public static void main(String args[]) { // Create and initialize linked list List<String> list = new LinkedList<>(); list.add("Ram"); list.add("Mohan"); list.add("Julie"); list.add("Raheem"); // Sort list by using the default comparator Collections.sort(list); // print the sorted list System.out.println("Sorted List: " + list); // shuffle the list Collections.shuffle(list); // print the shuffled list System.out.println("Shuffled List: " + list); System.out.println("Minimum: " + Collections.min(list)); System.out.println("Maximum: " + Collections.max(list)); } }
输出
Sorted List: [Julie, Mohan, Raheem, Ram] Shuffled List: [Mohan, Raheem, Julie, Ram] Minimum: Julie Maximum: Ram