清除集合中重复元素--Java基础076

本文介绍了一种使用Java实现的集合去重方法,通过自定义Book类并重写equals方法来判断书号是否相同,利用迭代器遍历集合并创建新集合存储不重复的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值