集合工具类
集合工具类
集合工具类在Java中主要指的是java.util.Collections
和java.util.Arrays
,以及java.util.stream.Collectors
(Java 8及以上版本)。以下是对这些工具类的简要说明:
1. java.util.Collections
Collections
类提供了一系列静态方法来操作或返回集合对象,包括:
- 排序:
sort()
,sort(List<T> list, Comparator<? super T> c)
。 - 洗牌:
shuffle(List<?> list)
。 - 反转:
reverse(List<?> list)
。 - 查找:
min()
,max()
,binarySearch(List<T> list, T key)
。 - 复制:
copy()
,copy(List<T> dest, List<? extends T> src)
。 - 空集合:返回不可变空集合,如
emptyList()
,emptySet()
,emptyMap()
。 - 不可修改集合:
unmodifiableCollection(Collection<T> c)
。 - 填充集合:
nCopies(int n, T element)
。
2. java.util.Arrays
Arrays
类提供了一系列静态方法来操作数组,包括:
- 排序:
sort()
,sort(Object[] a, Comparator c)
。 - 二分查找:
binarySearch()
。 - 填充:
fill()
。 - 转换为列表:
asList(Object... a)
。 - 比较:
equals()
。
3. java.util.stream.Collectors
在Java 8及以上版本中,Collectors
类提供了一系列工厂方法,用于将流(Stream)转换成集合或进行归约操作,包括:
- 收集到列表:
toList()
。 - 收集到集合:
toSet()
,toCollection(Supplier<C> collectionFactory)
。 - 分组:
groupingBy(Function<? super T, ? extends K> classifier)
。 - 分区:
partitioningBy(Predicate<? super T> predicate)
。 - 联接:
joining()
。 - 归约:
reducing()
。
4. java.util.Properties
Properties
类是用于管理属性表的类,通常用于读取和写入配置文件:
- 加载属性:
load(Reader reader)
,load(InputStream inStream)
。 - 保存属性:
store(Writer writer, String comments)
,store(OutputStream out, String comments)
。 - 获取属性:
getProperty(String key)
。 - 设置属性:
setProperty(String key, String value)
。
示例用法
以下是使用 Collections
和 Arrays
类的一些示例:
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CollectionUtilExample {
public static void main(String[] args) {
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");
// 使用Collections工具类对列表进行排序
Collections.sort(list);
// 使用Arrays工具类对数组进行排序
int[] numbers = {5, 3, 9, 1};
Arrays.sort(numbers);
// 打印排序后的结果
System.out.println(list);
System.out.println(Arrays.toString(numbers));
}
}