Как я могу сравнить два вышеупомянутых списка с / без итерации по каждому списку? Я хотел бы сравнить список people1 без итерации по списку людей.когда сопоставление происходит, он печатает соответствующий объект, иначе он должен печатать не соответствующий объект.Я должен сделать это без повторения второго списка.
import java.util.*;
public class Person implements Comparable<Person> {
String name;
int age;
String mail;
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public Person(String name, int age, String mail) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String toString() {
return name + " : " + age;
}
public int compareTo(Person p) {
return getMail().compareTo(p.getMail());
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
return false;
}
public static void main(String[] args) {
List<Person> people = new ArrayList<Person>();
people.add(new Person("Homer", 38, "shankar@gmail.com"));
people.add(new Person("Marge", 35, "shankar6@gmail.com"));
people.add(new Person("Bart", 15, "ramr@gmail.com"));
people.add(new Person("Lisa", 13, "ramkumar@gmail.com"));
System.out.println("\t" + people);
List<Person> people1 = new ArrayList<Person>();
people1.add(new Person("jug", 38, "jug@gmail.com"));
people1.add(new Person("benny", 35, "benny@gmail.com"));
people1.add(new Person("Bart", 15, "ramr@gmail.com"));
people1.add(new Person("Lisa", 13, "ramkumar@gmail.com"));
for (Person people : people) {
if (people1.contains( people)) {
System.out.println("matched");
System.out.println(people);
} else {
System.out.println("not matched");
System.out.println(people);
}
}
}
}
ожидаемый результат:
matched
Bart : 15 :ramr@gmail.com