如何使用Java 8从ArrayList中获取唯一值?

介绍

在Java 8中,有很多方便实用的API可以帮助我们轻松从ArrayList中获取唯一值。这些API包括Stream API、Lambda表达式、forEach()方法等。在本文中,我们将讨论使用这些API获取ArrayList中唯一值的方法。

使用Stream API获取唯一值

Stream API是Java 8中最强大的API之一。它主要用于处理集合中的元素,如List、Set等。下面是使用Stream API从ArrayList中获取唯一值的示例:

List<String> list = new ArrayList<>();

list.add("apple");

list.add("banana");

list.add("orange");

list.add("apple");

list.add("orange");

List<String> uniqueList = list.stream()

.distinct()

.collect(Collectors.toList());

在上面的示例中,我们首先创建了一个ArrayList,并向其中添加了一些元素。接下来,我们使用stream()方法将ArrayList转换为流,然后调用distinct()方法获取唯一值并将其收集到一个List中。在执行完上述代码后,唯一值将存储在uniqueList中。

使用Lambda表达式获取唯一值

Lambda表达式是Java 8中另一个强大的概念。它可以用来编写非常高效的代码,并在处理集合时非常有用。下面是使用Lambda表达式从ArrayList中获取唯一值的示例:

List<String> list = new ArrayList<>();

list.add("apple");

list.add("banana");

list.add("orange");

list.add("apple");

list.add("orange");

List<String> uniqueList = new ArrayList<>();

list.forEach(e -> {

if(!uniqueList.contains(e)) {

uniqueList.add(e);

}

});

在上面的示例中,我们首先创建了一个ArrayList,并向其中添加了一些元素。接下来,我们创建了一个空的ArrayList用于存储唯一值,在遍历ArrayList时,使用Lambda表达式检查元素是否已经被添加到uniqueList中。如果未添加,则将其添加到uniqueList中。

使用for循环获取唯一值

除了Java 8中的新API之外,我们还可以使用传统的for循环来从ArrayList中获取唯一值。下面是使用for循环从ArrayList中获取唯一值的示例:

List<String> list = new ArrayList<>();

list.add("apple");

list.add("banana");

list.add("orange");

list.add("apple");

list.add("orange");

List<String> uniqueList = new ArrayList<>();

for(String s : list) {

if(!uniqueList.contains(s)) {

uniqueList.add(s);

}

}

在上面的示例中,我们首先创建了一个ArrayList,并向其中添加了一些元素。接下来,我们创建了一个空的ArrayList用于存储唯一值,并使用传统的for循环遍历ArrayList,检查元素是否已经添加到uniqueList中。如未添加,则将该元素添加到uniqueList中。

结论

以上是从Java 8 ArrayList中获取唯一值的三种方法。我们可以看到,这些方法都非常简单,易于理解和实现。如果您需要从ArrayList中获取唯一值,这些方法是您不可或缺的道具。

后端开发标签