admin 管理员组

文章数量: 887031


2024年1月5日发(作者:vb listbox用法)

java中list的contains方法

Java中List的contains方法详解

介绍

在Java编程中,List是常用的数据结构之一,它是一种有序的集合,可以存储多个相同类型的元素。List提供了许多方法来操作集合中的元素,其中包括contains方法,用于判断集合中是否包含指定的元素。

本文将详细介绍Java中List的contains方法的使用,包括不同的方法及其使用场景。

contains方法基本用法

在Java中,List的contains方法主要是用来判断集合中是否包含指定的元素。其基本用法如下所示:

boolean contains(Object element)

• element:要判断是否包含的元素,可以是任意类型的对象。

该方法返回一个布尔值,如果集合中包含指定元素,则返回true,否则返回false。

使用equals方法判断

List的contains方法底层使用的是元素对象的equals方法来判断是否相等。因此,在进行contains判断时,需要确保元素类的equals方法已经正确重写。

public class Person {

private String name;

private int age;

//

构造方法和其他代码省略

@Override

public boolean equals(Object obj) {

if (this == obj) {

return true;

}

if (obj == null || getClass() != ()) {

return false;

}

Person person = (Person) obj;

return age == && (name, );

}

}

上述代码中的Person类重写了equals方法,以便根据name和age来判断两个Person对象是否相等。

List personList = new ArrayList<>();

(new Person("Alice", 20));

(new Person("Bob", 30));

Person target = new Person("Alice", 20);

boolean containsTarget = (target); // true

在上述代码中,通过调用List的contains方法判断personList中是否包含名为”Alice”,年龄为20的Person对象。由于Person类正确重写了equals方法,所以contains方法能够正常工作。

判断字符串是否包含

如果List的元素类型是字符串,可以直接使用contains方法判断字符串是否包含指定的子串。

List stringList = new ArrayList<>();

("apple");

("banana");

("orange");

boolean containsBanana = ("banana"); // true

在上述代码中,通过调用List的contains方法判断stringList中是否包含字符串”banana”。

判断自定义对象是否包含

如果List的元素类型是自定义的对象,且对象没有正确重写equals方法,那么contains方法无法准确判断是否包含指定的对象,此时需要自行实现相关逻辑。

List pointList = new ArrayList<>();

(new Point(1, 2));

(new Point(3, 4));

(new Point(5, 6));

Point target = new Point(1, 2);

boolean containsTarget = ().anyMatch(p -> () == () && () == ()); // true

在上述代码中,通过使用Java 8的Stream流,在pointList中查找是否包含给定的Point对象。根据具体的业务逻辑,可以使用不同的方式来判断对象是否相等。

总结

本文详细介绍了Java中List的contains方法的使用,使用equals方法判断元素是否包含、判断字符串是否包含、判断自定义对象是否包含等。请开发者根据具体的业务逻辑选择合适的方法来实现contains的功能。

希望本文能够帮助到大家,谢谢!


本文标签: 方法 是否 判断 包含 元素