Java集合

时间:2020-01-09 10:35:47  来源:igfitidea点击:

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的元素。这是一个使用Collectionsshuffle()方法对列表进行混排的示例:

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()

JavaCollectionsreplaceAll()方法可以用一个元素替换所有出现的一个元素。我们将要替换的元素和要替换的元素作为参数传递给replaceAll()方法。如果替换了任何元素,则Collections的replaceAll()方法将返回true,否则将返回false。这是一个用JavaList`中的一个元素全部替换为另一个元素的示例:

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);