Java集合
Java的Collections类java.util.Collections包含一长串用于在Java中使用集合的实用程序方法。在"收藏"教程中,我将介绍这些方法中最有用的一些。
addAll()
Java Collections addAll()方法可以向Collection中添加可变数量的元素(通常是List或者Set。这是调用Collections addAll()方法的Java代码示例。 :
List<String> list = new ArrayList<>(); Collections.addAll(list, "element 1", "element 2", "element 3");
binarySearch()
Collections binarySearch()方法可以使用二进制搜索算法在Java列表中搜索元素。必须使用升序对List进行排序,然后再使用BinarySearch()对其进行搜索。有关如何按升序对List进行排序的更多信息,请参见有关对Java List进行排序的教程。这是一个使用Collections``binarySearch()
方法搜索List
的例子:
List<String> list = new ArrayList<>(); list.add("one"); list.add("two"); list.add("three"); list.add("four"); list.add("five"); Collections.sort(list); int index = Collections.binarySearch(list, "four"); System.out.println(index);
copy()
Collections copy()方法可以将List的所有元素复制到另一个List中。这是一个调用Collections``copy()
方法的Java示例:
List<String> source = new ArrayList<>(); Collections.addAll(source, "e1", "e2", "e3"); List<String> destination = new ArrayList<>(); Collections.copy(destination, source);
reverse()
集合 reverse()
方法可以反转JavaList
中的元素。这是一个反转List元素的示例:
List>String< list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("three"); Collections.reverse(list);
执行完上述代码后,"列表"中元素的顺序将为"三个","两个","一个"。
shuffle()
Collections``shuffle()
方法可以改写List
的元素。这是一个使用Collections
shuffle()方法对列表进行混排的示例:
List>String< list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("three"); Collections.shuffle(list);
sort()
Collections sort()方法可以对Java List进行排序。我已经在我的Java List排序教程中介绍了List的排序。这是一个使用Collections`sort()方法对Java List进行排序的示例:
List>String< list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("three"); list.add("four"); Collections.sort(list);
运行此代码后,"列表"中元素的顺序将为four
, one
, three
, two
,因为"字符串"元素将按字母顺序排序。
copy()
JavaCollections``copy()
方法可以将一个List
复制到另一个。我们将源和目标"列表"实例提供为" copy()"方法的参数。这是用集合``copy()
复制列表
的方法:
List source = new ArrayList(); source.add("one"); source.add("two"); source.add("three"); List destination = new ArrayList(); Collections.copy(destination, source);
min()
Collections min()方法可以根据元素的自然顺序在List中找到最小元素(请参阅Java List排序教程)。这是一个使用Collections min()方法在Java List中找到最小元素的示例:
List source = new ArrayList(); source.add("1"); source.add("2"); source.add("3"); String min = (String) Collections.min(source);
运行上面的代码后,min
变量将包含字符串值1
。
max()
Collections max()方法可以根据元素的自然顺序在List中找到最大元素(请参阅我的Java List排序教程)。这是在JavaList
中查找最大元素的示例:
List source = new ArrayList(); source.add("1"); source.add("2"); source.add("3"); String max = (String) Collections.max(source);
运行上面的代码后,变量max将包含字符串值3.
replaceAll()
JavaCollections
replaceAll()方法可以用一个元素替换所有出现的一个元素。我们将要替换的元素和要替换的元素作为参数传递给
replaceAll()方法。如果替换了任何元素,则Collections的replaceAll()方法将返回true,否则将返回false。这是一个用Java
List`中的一个元素全部替换为另一个元素的示例:
List source = new ArrayList(); source.add("A"); source.add("B"); source.add("A"); boolean replacedAny = source.replaceAll(source, "A", "C");
执行完此示例后,"源""列表"将包含元素" C"," B"和" C"。 " replacedAny"变量将包含" true"值,因为" List"中至少替换了一个元素。
Collections的replaceAll()方法使用每个元素的equals()方法来确定该元素是否等于要替换的元素。在关于Java equals()方法的部分中,我写了一些有关equals()方法如何工作的更多详细信息。
unmodifiableSet()
Java Collections类中的unmodifiableSet()方法可以从常规Java Set中创建一个不变的(不可修改的)Set集。这是一个从普通的"集合"创建不可变的"集合"的Java示例:
Set normalSet = new HashSet(); Set immutableSet = Collections.unmodifiableSet(normalSet);