package cn.itcast.list;
import java.util.ArrayList;
import java.util.Iterator;
/*
*/
class Book{
  
  int id;
  
  String name;// 名字
  public Book(int id, String name) {
    this.id = id;
    this.name = name;
  }
  
  @Override
  public String toString() {
    return "{ 书号:"+ this.id+" 书名:"+ this.name+" }";
  
  }
  
  @Override
  public boolean equals(Object obj) {
    Book book =(Book)obj;
    return this.id==book.id;
  }
  
  
}
// 需求: 编写一个函数清除集合中重复元素。
//如果书号是一样就视为重复元素。  要求: 遍历集合元素的时候必须使用迭代器。  get 迭代器
public class Demo7 {
  
  public static void main(String[] args) {
    ArrayList list=  new ArrayList();
    list.add(new Book(110,"java编程思想"));
    list.add(new Book(220,"java核心技术"));
    list.add(new Book(330,"深入javaweb"));
    list.add(new Book(110,"javas神书"));
    
    ArrayList list2 = clearRepeat(list);
    System.out.println("新集合的元素是:"+ list2);
  }
  
  
  public static ArrayList  clearRepeat(ArrayList list){
    //创建一个新的集合
    ArrayList newList = new ArrayList();
    //获取迭代器
    Iterator it = list.iterator();
    while(it.hasNext()){
      Book book = (Book) it.next();  //从旧集合中获取的元素
      if(!newList.contains(book)){
        //如果新集合没有包含该书籍,那么就存储到新集合中
        newList.add(book);
      }
    }
    return newList;
    
  }
  
  
}
package com.sqf.conlection;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/*
  需求: 编写一个函数清除集合中重复元素。
  如果书号是一样就视为重复元素。  要求: 遍历集合元素的时候必须使用迭代器。  get 迭代器
*/
class Book{
  
  private int id;
  
  private String name;
  public Book() {
  }
  
  public Book(int id,String name) {
    this.id = id;
    this.name = name;
  }
  
  @Override
  public boolean equals(Object obj) {
    
    Book book = (Book) obj;
    
    return this.id==book.id;
  }
  
  @Override
  public String toString() {
    
    return "id:"+id + "  name:"+name;
  }
  
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  
  
  
}
public class Demo3 {
  
  public static void main(String[] args) {
    
    List list = new ArrayList();
    list.add(new Book(110, "C语言"));
    list.add(new Book(111, "C++语言"));
    list.add(new Book(112, "java语言"));
    list.add(new Book(113, "C#"));
    list.add(new Book(114, "JavaScript"));
    list.add(new Book(111, "你猜"));
    
    ListIterator it = list.listIterator();
    ListIterator it1;
    List list1 = new ArrayList();
    while(it.hasNext()){
      Book book = (Book) it.next();
      int flag = 1;
      it1 = list1.listIterator();
      while(it1.hasNext()){
        Book book1 = (Book) it1.next();
        if(book1.equals(book)){
          flag = 0;
          break;
        }
      }
      if(flag==1){
        it1.add(book);
      }
    }
    
    System.out.println(list1);
    
  }
  
}