介绍
在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中获取唯一值,这些方法是您不可或缺的道具。