List contains()方法

今天用到了List的contains()方法,代码心得如下:

package com.young.test;import java.util.ArrayList;import java.util.List;/** * list<E>的 contains方法会调用list中E的equals()方法。 * 普通类equals()比较的是引用。 * 而String的equals()比较的是值,因为java对String的equals()方法进行了重写。 */public class ListContains {public static void main(String[] args) {List<Person> pList = new ArrayList<Person>();Person pp = new Person();for (int i = 0; i < 15; i++) {Person p = new Person();p.setId(String.valueOf(i));p.setName(i + "_name");p.setAge(String.valueOf(i + 10));if (i == 14) {pp = p;//记录最后一个元素,引用传递}if (i % 2 == 0) {p.setSex("男");} else {p.setSex("女");}pList.add(p);}for (Person p1 : pList) {System.out.println(p1.getId() + p1.getName() + p1.getSex()+ p1.getAge());}Person p2 = new Person();p2.setAge("24");p2.setName("14_name");p2.setId("14");p2.setSex("男");/** * 如果不重写Person的equals()方法,,那么比较的是引用,结果为不包含;把p2换成pp结果为 包含。 */if (pList.contains(p2) == true) {System.out.print("包含");} else {System.out.print("不包含");}}}class Person {private String id;private String name;private String age;private String sex;/** * 重写对象的eqauls()方法。 */@Overridepublic boolean equals(Object obj) {System.out.println("Peson equals()方法调用!");Person p = (Person) obj;/* * String对象 "=="比较的是引用,而String 的equals()方法比较的才是值。 * if (p.getId() == this.id && p.getName() == this.name && p.getAge() == * this.age && p.getSex() == this.sex) { *///我们约定只有这四个属性都一样时,这两个对象才相等。if (p.getId().equals(this.id) && p.getName().equals(this.name)&& p.getAge().equals(this.age) && p.getSex().equals(this.sex)) {return true;} else {return false;}}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}}

今天不想走,明天就要跑了。

List contains()方法

相关文章:

你感兴趣的文章:

标签云: