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 可以在多线程环境下安全操作
最后更新于
这有帮助吗?