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);
}
}