找出list中的不同元素、删除两个list中相同的对象

时间:2024-06-24 13:33:02
  1. package com.test;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Collections;
  5. import java.util.List;
  6. /**
  7. *
  8. * 找出两个list中不同的元素
  9. * @author leiwei 2011-12-14
  10. *
  11. */
  12. public class NoEqualsElement {
  13. public static void main(String[] args) {
  14. List<String> list1 = new ArrayList<String>();
  15. List<String> list2 = new ArrayList<String>();
  16. list1.add("1");
  17. list1.add("3");
  18. list1.add("8");
  19. list1.add("9");
  20. list2.add("2");
  21. list2.add("3");
  22. list2.add("7");
  23. for(String s2:list1) {
  24. boolean flag = false;
  25. for(String s1:list2) {
  26. if(s2.equals(s1)) {
  27. flag = true;
  28. break;
  29. }
  30. }
  31. if(!flag){
  32. System.out.println(s2);
  33. }
  34. }
  35. }
  36. }
  1. package com.test;
  2. import java.util.ArrayList;
  3. import java.util.HashSet;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.Set;
  7. import com.model.Student;
  8. /**
  9. * 重写对象Student的equals方法
  10. * 只要age相等 对象就相等
  11. *
  12. * 删除两个集合中 相同的对象只保留一个
  13. * @author leiwei 2011-12-19
  14. *
  15. */
  16. public class ListOBJ {
  17. public static void main(String[] args) {
  18. Set<Student> setStudent = new HashSet<Student>();
  19. List<Student> list1 = new ArrayList<Student>();
  20. List<Student> list2 = new ArrayList<Student>();
  21. Student s1 = new Student();
  22. s1.setAge("10");
  23. list1.add(s1);
  24. Student s2 = new Student();
  25. s2.setAge("20");
  26. list1.add(s2);
  27. Student s3 = new Student();
  28. s3.setAge("20");
  29. list2.add(s3);
  30. Student s4 = new Student();
  31. s4.setAge("30");
  32. list2.add(s4);
  33. /**
  34. * 我们知道set集合,中的元素不会重复
  35. *
  36. * 将连个对象集合放进去,自然就会排出重复的
  37. *
  38. * 对象(前提Student 对象重写了equals方法)
  39. */
  40. setStudent.addAll(list1);
  41. setStudent.addAll(list2);
  42. //输出 测试看是否 排出成功
  43. System.out.println(setStudent.size());
  44. Iterator<Student> iterator = setStudent.iterator();
  45. while (iterator.hasNext()) {
  46. Student s = iterator.next();
  47. System.out.println(s.getAge());
  48. }
  49. }
  50. }
  1. package com.model;
  2. public class Student {
  3. private String age;
  4. public String getAge() {
  5. return age;
  6. }
  7. public void setAge(String age) {
  8. this.age = age;
  9. }
  10. //重写equals方法只要age相等,我们就认为对象两个相等
  11. @Override
  12. public boolean equals(Object obj) {
  13. if(obj instanceof Student){
  14. Student st=(Student) obj;
  15. return (age.equals(st.age));
  16. }else{
  17. return super.equals(obj);
  18. }
  19. }
  20. @Override
  21. public int hashCode() {
  22. return age.hashCode();
  23. }
  24. }

转自:http://blog.****.net/goodleiwei/article/details/7083199