- 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
