欢迎访问宙启技术站
智能推送

用Java函数在列表中查找元素

发布时间:2023-06-23 02:31:10

在Java中,List是一种常见的容器类型,用于存储一组有序的元素。在实际开发中,我们经常需要对List中的元素进行查找,以判断某个元素是否存在于List中或者找到List中某个元素的位置。

Java提供了许多函数来实现这些功能。本文将介绍使用Java函数在列表中查找元素的相关知识。

1. contains()函数

contains()函数是List接口中的一个函数,用于判断某个元素是否存在于List中。根据不同的实现,该函数的时间复杂度可能不同。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");

boolean result = list.contains("apple");
System.out.println(result); // true

result = list.contains("grape");
System.out.println(result); // false

2. indexOf()函数

indexOf()函数是List接口中的一个函数,用于查找List中 个出现指定元素的位置。如果该元素不存在于List中,则返回-1。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");

int index = list.indexOf("banana");
System.out.println(index); // 1

index = list.indexOf("grape");
System.out.println(index); // -1

3. lastIndexOf()函数

lastIndexOf()函数是List接口中的一个函数,用于查找List中最后一个出现指定元素的位置。如果该元素不存在于List中,则返回-1。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
list.add("banana");

int index = list.lastIndexOf("banana");
System.out.println(index); // 3

index = list.lastIndexOf("grape");
System.out.println(index); // -1

4. findFirst()函数和findFirstOrNull()函数

在Java8中,List接口提供了findFirst()函数和findFirstOrNull()函数,用于查找符合指定条件的 个元素。

findFirst()函数返回一个Optional对象,其中包含符合条件的 个元素。如果没有符合条件的元素,则返回一个空Optional对象。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");

Optional<String> result = list.stream().filter(x -> x.startsWith("b")).findFirst();

if (result.isPresent()) {
    System.out.println(result.get());
} else {
    System.out.println("No element found");
}

findFirstOrNull()函数与findFirst()函数类似,但返回一个允许为null的对象。如果没有符合条件的元素,则返回null。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");

String result = list.stream().filter(x -> x.startsWith("b")).findFirstOrNull();

if (result != null) {
    System.out.println(result);
} else {
    System.out.println("No element found");
}

5. findAny()函数和findAnyOrNull()函数

在Java8中,List接口提供了findAny()函数和findAnyOrNull()函数,用于查找符合指定条件的任意一个元素。

findAny()函数返回一个Optional对象,其中包含符合条件的任意一个元素。如果没有符合条件的元素,则返回一个空Optional对象。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");

Optional<String> result = list.stream().filter(x -> x.startsWith("b")).findAny();

if (result.isPresent()) {
    System.out.println(result.get());
} else {
    System.out.println("No element found");
}

findAnyOrNull()函数与findAny()函数类似,但返回一个允许为null的对象。如果没有符合条件的元素,则返回null。

示例代码如下:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");

String result = list.stream().filter(x -> x.startsWith("b")).findAnyOrNull();

if (result != null) {
    System.out.println(result);
} else {
    System.out.println("No element found");
}

6. stream()函数和filter()函数

以上的函数都涉及到Java8中引入的stream()函数和filter()函数。stream()函数用于将List转换为Stream对象,filter()函数用于过滤Stream中的元素。

使用stream()函数和filter()函数可以轻松地实现自定义的查找需求。例如,在List中查找 个长度大于5的元素,可以通过以下代码实现:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");

Optional<String> result = list.stream().filter(x -> x.length() > 5).findFirst();

if (result.isPresent()) {
    System.out.println(result.get());
} else {
    System.out.println("No element found");
}

总结

本文介绍了使用Java函数在列表中查找元素的相关知识。Java提供了许多函数来实现这些功能,例如contains()函数、indexOf()函数、lastIndexOf()函数、findFirst()函数、findFirstOrNull()函数、findAny()函数、findAnyOrNull()函数、stream()函数和filter()函数等。使用这些函数可以轻松地实现对List中元素的查找需求。