Java Collections
类
原文:https://www.studytonight.com/java/collections-in-collection-framework.php
Java Collections 类是集合框架的一部分。这个类被设计为提供搜索、排序、复制等方法。它只包含对集合进行操作或返回集合的内置静态方法。它包含对集合进行操作的多态算法。
该类位于 java.util 包中。这个类的声明如下。
集合类声明
public class Collections extends Object
它继承了 Object 类,如果对象为空,这个类的所有方法都会抛出一个 NullPointerException 。
收集方法
此表包含集合类的常用方法。
| 方法 | 描述 |
| 阿德拉() | 它将所有指定的元素添加到指定的集合中。 |
| binarySearch() | 它在列表中搜索指定的对象,并返回它们在排序列表中的位置。 |
| 复制() | 它将一个列表中的所有元素复制到另一个列表中。 |
| 不相交() | 如果两个指定的集合没有共同的元素,则返回 true。 |
| emptyEnumeration() | 它获取一个没有元素的枚举。 |
| emptyIterator() | 它获取一个没有元素的迭代器。 |
| emptylist() | 它获取一个没有元素的列表。 |
| emptyListIterator() | 它获取一个没有元素的列表迭代器。 |
| emptyMap() | 它返回一个不可变的空映射。 |
| emptyNavigableMap() | 它返回一个不可变的空导航映射。 |
| emptyNavigableSet() | 它返回一个本质上不可变的空的可导航集合。 |
| emptyset() | 它返回没有元素的集合。 |
| emptySortedMap() | 它返回一个不可变的空排序图。 |
| emptySortedSet() | 它用于获取没有元素的排序集。 |
| 枚举() | 它用于获取指定集合上的枚举。 |
| 填充() | 它用于用指定的元素替换指定列表中的所有元素。 |
| 列表() | 它用于获取一个ArrayList
,该列表包含指定枚举返回的元素,这些元素按枚举返回的顺序排列。 |
| 最大值() | 它用于获取给定集合的最大值。 |
| 最小值() | 它用于获取给定集合的最小值。 |
| nCopies() | 它用于获取由指定对象的 n 个副本组成的不可变列表。 |
| replaceAll() | 它用于将列表中一个指定值的所有出现替换为另一个指定值。 |
| 反向() | 它用于反转指定列表中元素的顺序。 |
| reverseOrder() | 它用于获取Comparator
,该Comparator
对集合施加与自然排序相反的排序。 |
| 旋转() | 它用于将指定列表中的元素旋转给定的距离。 |
| 洗牌() | 它用于使用默认随机性对指定的列表元素进行随机重新排序。 |
| 排序() | 它用于按升序对集合的指定列表中的元素进行排序。 |
| 交换() | 它用于交换指定列表中指定位置的元素。 |
| synchronizedCollection() | 它用于获取由指定集合支持的同步(线程安全)集合。 |
| synchronizedlist() | 它用于获取由指定列表支持的同步(线程安全)集合。 |
| synchronizedMap() | 它用于获取由指定映射支持的同步(线程安全)映射。 |
| synchronizedNavigableMap() | 它用于获取由指定的可导航映射支持的同步(线程安全)可导航映射。 |
| synchronizedNavigableSet() | 它用于获取由指定的可导航集支持的同步(线程安全)可导航集。 |
| synchronizedSet() | 它用于获取由指定集支持的同步(线程安全)集。 |
| synchronizedSortedMap() | 它用于获取由指定排序映射支持的同步(线程安全)排序映射。 |
| synchronizedSortedSet() | 它用于获取由指定排序集支持的同步(线程安全)排序集。 |
示例:排序列表
在这个例子中,我们使用的是 Collections 类的sort()
方法,用于对集合的元素进行排序。这里我们使用存储Integer
类型对象和排序的ArrayList
类。
import java.util.*;
public class Demo {
public static void main(String a[]){
// Creating ArrayList
ArrayList<Integer> list = new ArrayList<>();
// Adding elements
list.add(100);
list.add(2);
list.add(66);
list.add(22);
list.add(10);
// Displaying list
System.out.println(list);
// Sorting list
Collections.sort(list);
// Displaying sort data
System.out.println(list);
}
}
[100, 2, 66, 22, 10] [2, 10, 22, 66, 100]
示例:查找最小和最大元素
collections 类提供了两种方法max()
和min()
,可用于从集合中获取最大值和最小值。见下面的例子。
import java.util.*;
public class Demo {
public static void main(String a[]){
// Creating ArrayList
ArrayList<Integer> list = new ArrayList<>();
// Adding elements
list.add(100);
list.add(2);
list.add(66);
list.add(22);
list.add(10);
// Displaying list
System.out.println(list);
// Find min element
int min = Collections.min(list);
// Find max element
int max = Collections.max(list);
// Displaying data
System.out.println("Minimum element : "+ min);
System.out.println("Maximum element : "+ max);
}
}
[100,2,66,22,10]最小元素:2 最大元素:100
示例:交换元素
为了交换元素,我们不需要编写逻辑代码。Collections 类提供了内置的交换方法,可用于将元素从集合中的一个位置交换到另一个位置。swap()
方法取三个参数:第一个是对象的引用,第二个是第一个元素的索引,第三个是要交换的第二个元素的索引。见下面的例子。
import java.util.*;
public class Demo {
public static void main(String a[]){
// Creating ArrayList
ArrayList<Integer> list = new ArrayList<>();
// Adding elements
list.add(100);
list.add(2);
list.add(66);
list.add(22);
list.add(10);
// Displaying list
System.out.println(list);
// Swapping elements
Collections.swap(list, 0, 4); // 100 is swapped by 10
System.out.println("List after swapping : "+ list);
}
}
[100,2,66,22,10]交换后的列表:[10,2,66,22,100]
示例:反转列表
Collections 类提供了一个静态方法reverse()
,用于以相反的顺序获取一个集合。在下面的例子中,我们使用reverse()
方法以相反的顺序获得列表。
import java.util.*;
public class Demo {
public static void main(String a[]){
// Creating ArrayList
ArrayList<Integer> list = new ArrayList<>();
// Adding elements
list.add(100);
list.add(2);
list.add(66);
list.add(22);
list.add(10);
// Displaying list
System.out.println(list);
// Reverse the list
Collections.reverse(list);
// Displaying data
System.out.println("List in reverse order "+list);
}
}
[100,2,66,22,10]按相反顺序列出[10,22,66,2,100]