# java集合面试问题(三)

### 67. 什么是Arrays类的toString()方法？

**回答：** Arrays.toString()方法是java.util包中的一个静态方法，用于将数组转换为字符串表示形式。该方法会按照数组的顺序将元素转换为字符串，并用逗号分隔，然后放在方括号内。

**代码示例：**

```
int[] array = {1, 2, 3};
String arrayString = Arrays.toString(array); // 返回 "[1, 2, 3]"
```

### 68. 什么是Arrays类的deepEquals()方法？

**回答：** Arrays.deepEquals()方法是java.util包中的一个静态方法，用于比较多维数组的内容是否相等。它会递归比较数组的元素，如果多维数组的内容完全相同，则返回true，否则返回false。

**代码示例：**

```
int[][] array1 = {{1, 2}, {3, 4}};
int[][] array2 = {{1, 2}, {3, 4}};

boolean areEqual = Arrays.deepEquals(array1, array2); // 返回 true
```

### 69. 什么是System.arraycopy()方法？

**回答：** System.arraycopy()方法是Java中的一个静态方法，用于在数组之间进行元素的复制。它可以将一个数组的一部分或全部元素复制到另一个数组中，并且可以在目标数组的指定位置开始放置复制的元素。

**代码示例：**

```
int[] source = {1, 2, 3, 4, 5};
int[] target = new int[5];

System.arraycopy(source, 1, target, 2, 3); // 将 source[1] 到 source[3] 复制到 target[2] 到 target[4]
```

### 70. 什么是Arrays类的fill()方法？

**回答：** Arrays.fill()方法是java.util包中的一个静态方法，用于将指定的值填充到数组的所有元素中。这可以在初始化数组或清除数组内容时很有用。

**代码示例：**

```
int[] array = new int[5];
Arrays.fill(array, 42); // 将数组的所有元素填充为 42
```

### 71. 什么是Arrays类的stream()方法？

**回答：** Arrays.stream()方法是java.util包中的一个静态方法，用于将数组转换为一个流（Stream）对象。通过将数组转换为流，你可以利用流的各种操作来处理数组中的元素。

**代码示例：**

```
int[] array = {1, 2, 3, 4, 5};
IntStream stream = Arrays.stream(array); // 将数组转换为 IntStream 流
```

### 72. 什么是Arrays类的parallelSort()方法？

**回答：** Arrays.parallelSort()方法是java.util包中的一个静态方法，用于对数组元素进行并行排序。与普通的Arrays.sort()方法相比，parallelSort()方法会在多个线程上并行执行排序操作，从而加快排序速度。

**代码示例：**

```
int[] array = {5, 2, 8, 1, 3};
Arrays.parallelSort(array); // 并行排序数组
```

### 73. 什么是Arrays类的mismatch()方法？

**回答：** Arrays.mismatch()方法是java.util包中的一个静态方法，用于查找两个数组中第一个不匹配的元素的索引。如果数组完全相等，则返回-1。

**代码示例：**

```
int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = {1, 2, 3, 6, 7};

int mismatchIndex = Arrays.mismatch(array1, array2); // 返回 3
```

### 74. 什么是Collections类的frequency()方法？

**回答：** Collections.frequency()方法是java.util包中的一个静态方法，用于计算集合中指定元素出现的次数。

**代码示例：**

```
List<String> list = Arrays.asList("apple", "banana", "apple", "orange");
int frequency = Collections.frequency(list, "apple"); // 返回 2
```

### 75. 什么是Collections类的disjoint()方法？

**回答：** Collections.disjoint()方法是java.util包中的一个静态方法，用于判断两个集合是否没有共同的元素。如果两个集合没有共同的元素，则返回true，否则返回false。

**代码示例：**

```
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);

boolean areDisjoint = Collections.disjoint(list1, list2); // 返回 true
```

### 76. 什么是Collections类的reverse()方法？

**回答：** Collections.reverse()方法是java.util包中的一个静态方法，用于反转集合中的元素顺序。

**代码示例：**

```
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Collections.reverse(list); // 将集合元素的顺序反转
```

### 77. 什么是Collections类的shuffle()方法？

**回答：** Collections.shuffle()方法是java.util包中的一个静态方法，用于随机打乱集合中的元素顺序。

**代码示例：**

```
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Collections.shuffle(list); // 随机打乱集合元素的顺序
```

### 78. 什么是Collections类的min()和max()方法？

**回答：** Collections.min()和Collections.max()方法是java.util包中的两个静态方法，用于找到集合中的最小和最大元素。

**代码示例：**

```
List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6);
int minValue = Collections.min(list); // 返回 1
int maxValue = Collections.max(list); // 返回 9
```

### 79. 什么是Collections类的addAll()方法？

**回答：** Collections.addAll()方法是java.util包中的一个静态方法，用于将一组元素添加到集合中。这个方法接受一个目标集合和一组元素作为参数，并将这些元素添加到目标集合中。

**代码示例：**

```
List<String> list = new ArrayList<>();
Collections.addAll(list, "apple", "banana", "orange");
```

### 80. 什么是Collections类的synchronizedXXX()方法？

**回答：** Collections.synchronizedXXX()方法是java.util包中的一系列静态方法，用于创建线程安全的集合，其中XXX可以是List、Set或Map。这些方法返回一个包装后的集合，可以在多线程环境下安全使用。

**代码示例：**

```
List<String> list = new ArrayList<>();
List<String> synchronizedList = Collections.synchronizedList(list);

// synchronizedList 可以在多线程环境下安全操作
```

### 81. 什么是Arrays类的spliterator()方法？

**回答：** Arrays.spliterator()方法是java.util包中的一个静态方法，用于创建数组的分割迭代器（Spliterator）。分割迭代器可以将数组的元素划分为多个部分，以便进行并行处理。

**代码示例：**

```
int[] array = {1, 2, 3, 4, 5};
Spliterator.OfInt spliterator = Arrays.spliterator(array);

// 使用 spliterator 进行并行处理
```

### 82. 什么是Collections类的newSetFromMap()方法？

**回答：** Collections.newSetFromMap()方法是java.util包中的一个静态方法，用于从现有的Map实例创建一个Set实例。这个Set实例的元素将与Map的键关联，因此只能包含唯一的元素。

**代码示例：**

```
Map<String, Boolean> map = new HashMap<>();
Set<String> set = Collections.newSetFromMap(map);

// set 中的元素将与 map 的键关联
```

### 83. 什么是Collections类的checkedMap()方法？

**回答：** Collections.checkedMap()方法是java.util包中的一个静态方法，用于创建一个类型安全的Map，其中的键和值都需要符合特定的类型。这可以帮助你在编译时捕获类型错误。

**代码示例：**

```
Map<String, Integer> map = new HashMap<>();
Map checkedMap = Collections.checkedMap(map, String.class, Integer.class);

// 只能将符合类型的键值对添加到 checkedMap
```

### 84. 什么是Collections类的emptyXXX()方法？

**回答：** Collections.emptyXXX()方法是java.util包中的一系列静态方法，用于创建空的集合，其中XXX可以是List、Set或Map。

**代码示例：**

```
List<String> emptyList = Collections.emptyList();
Set<Integer> emptySet = Collections.emptySet();
Map<String, Integer> emptyMap = Collections.emptyMap();
```

### 85. 什么是Collections类的singletonMap()方法？

**回答：** Collections.singletonMap()方法是java.util包中的一个静态方法，用于创建只包含一个键值对的不可修改Map实例。

**代码示例：**

```
Map<String, Integer> singletonMap = Collections.singletonMap("key", 42);
```

### 86. 什么是Collections类的nCopies()方法？

**回答：** Collections.nCopies()方法是java.util包中的一个静态方法，用于创建一个包含指定元素重复多次的不可修改的List实例。

**代码示例：**

```
List<String> copies = Collections.nCopies(3, "Hello");
// 创建一个包含 3 个 "Hello" 的 List
```

### 87. 什么是Collections类的reverseOrder()方法？

**回答：** Collections.reverseOrder()方法是java.util包中的一个静态方法，用于获取一个比较器，该比较器按照元素的逆自然顺序进行比较。

**代码示例：**

```
List<Integer> list = Arrays.asList(5, 2, 8, 1, 3);
Collections.sort(list, Collections.reverseOrder()); // 按逆序排序
```

### 88. 什么是Collections类的rotate()方法？

**回答：** Collections.rotate()方法是java.util包中的一个静态方法，用于循环移动集合中的元素。这个方法接受一个集合和一个距离参数，将集合中的元素循环移动指定的距离。

**代码示例：**

```
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Collections.rotate(list, 2); // 循环移动 2 个位置
```

### 89. 什么是Collections类的replaceAll()方法？

**回答：** Collections.replaceAll()方法是java.util包中的一个静态方法，用于将集合中的所有旧值替换为新值。

**代码示例：**

```
List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "apple", "orange"));
Collections.replaceAll(list, "apple", "fruit");

// 将所有 "apple" 替换为 "fruit"
```

### 90. 什么是Collections类的singleton()方法？

**回答：** Collections.singleton()方法是java.util包中的一个静态方法，用于创建一个只包含一个元素的不可修改Set实例。

**代码示例：**

```
Set<String> singletonSet = Collections.singleton("Hello");
```

### 91. 什么是Collections类的enumeration()方法？

**回答：** Collections.enumeration()方法是java.util包中的一个静态方法，用于将指定集合转换为一个枚举（Enumeration）对象。枚举是一种旧的迭代方式，通常在遗留代码中使用。

**代码示例：**

```
List<String> list = Arrays.asList("apple", "banana", "orange");
Enumeration<String> enumeration = Collections.enumeration(list);
```

### 92. 什么是Collections类的indexOfSubList()和lastIndexOfSubList()方法？

**回答：** Collections.indexOfSubList()和Collections.lastIndexOfSubList()方法是java.util包中的两个静态方法，用于在一个集合中查找另一个集合子列表的第一个和最后一个索引。

**代码示例：**

```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 2, 3);
List<Integer> sublist = Arrays.asList(2, 3);

int firstIndex = Collections.indexOfSubList(list, sublist); // 返回 1
int lastIndex = Collections.lastIndexOfSubList(list, sublist); // 返回 5
```

### 93. 什么是Collections类的newXXX()方法？

**回答：** Collections.newXXX()方法是java.util包中的一系列静态方法，用于创建可修改的空集合，其中XXX可以是List、Set或Map。

**代码示例：**

```
List<String> newList = Collections.newLinkedList();
Set<Integer> newSet = Collections.newSetFromMap(new HashMap<>());
Map<String, Integer> newMap = Collections.newHashMap();
```

### 94. 什么是Collections类的checkedSortedMap()方法？

**回答：** Collections.checkedSortedMap()方法是java.util包中的一个静态方法，用于创建一个类型安全的有序Map，其中的键和值都需要符合特定的类型。这可以帮助你在编译时捕获类型错误。

**代码示例：**

```
SortedMap<String, Integer> sortedMap = new TreeMap<>();
SortedMap checkedSortedMap = Collections.checkedSortedMap(sortedMap, String.class, Integer.class);

// 只能将符合类型的键值对添加到 checkedSortedMap
```

### 95. 什么是Collections类的emptyIterator()和emptyListIterator()方法？

**回答：** Collections.emptyIterator()和Collections.emptyListIterator()方法是java.util包中的两个静态方法，用于创建空的迭代器（Iterator）和空的列表迭代器（ListIterator）实例。

**代码示例：**

```
Iterator<String> emptyIterator = Collections.emptyIterator();
ListIterator<Integer> emptyListIterator = Collections.emptyListIterator();
```

### 96. 什么是Collections类的fill()方法？

**回答：** Collections.fill()方法是java.util包中的一个静态方法，用于将指定的值填充到列表中的所有元素。

**代码示例：**

```
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Collections.fill(list, 0); // 将列表的所有元素填充为 0
```

### 97. 什么是Collections类的unmodifiableCollection()方法？

**回答：** Collections.unmodifiableCollection()方法是java.util包中的一个静态方法，用于创建不可修改的集合视图，其中的元素与原始集合相同，但不能进行增加、删除或修改操作。

**代码示例：**

```
List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "orange"));
Collection<String> unmodifiableCollection = Collections.unmodifiableCollection(list);

// 尝试修改 unmodifiableCollection 会引发 UnsupportedOperationException
```

### 98. 什么是Collections类的disjoint()方法？

**回答：** Collections.disjoint()方法是java.util包中的一个静态方法，用于判断两个集合是否没有共同的元素。如果两个集合没有共同的元素，则返回true，否则返回false。

**代码示例：**

```
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);

boolean areDisjoint = Collections.disjoint(list1, list2); // 返回 true
```

### 99. 什么是Collections类的singleton()方法？

**回答：** Collections.singleton()方法是java.util包中的一个静态方法，用于创建只包含一个元素的不可修改Set实例。

**代码示例：**

```
Set<String> singletonSet = Collections.singleton("Hello");
```

### 100. 什么是Collections类的synchronizedCollection()方法？

**回答：** Collections.synchronizedCollection()方法是java.util包中的一个静态方法，用于创建一个线程安全的集合，其中的元素与原始集合相同，但可以在多线程环境中安全操作。

**代码示例：**

```
List<String> list = new ArrayList<>();
Collection<String> synchronizedCollection = Collections.synchronizedCollection(list);

// synchronizedCollection 可以在多线程环境下安全操作
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flydean.com/www.flydean.com/docs/interview/java/collections/003-java-collections-03.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
