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 可以在多线程环境下安全操作

最后更新于