集合中的迭代
来源:互联网 发布:淘宝打印发货单软件 编辑:程序博客网 时间:2024/05/22 20:32
package com.beiwo.list;
import java.util.*;
public class Test {
/**
* 写一个方法, 用来清除 List 集合中的 重复元素
*
* 如果书Book 的编号一样,那么就认为是重复的元素
*
*/
public static void main(String[] args) {
ArrayList list = new ArrayList();
Book b1 = new Book(101, "红楼梦");
Book b2 = new Book(102, "西游记");
Book b3 = new Book(103, "水浒传");
Book b4 = new Book(104, "三国演义");
Book b5 = new Book(101, "冰与火之歌");
list.add(b1);
list.add(b2);
list.add(b3);
list.add(b4);
list.add(b5);
list.add(new Book(104, "三国演义"));
list.add(new Book(105, "群鸦的盛宴"));
list.add(new Book(102, "血色婚礼"));
//测试写的方法
ArrayList newList = clearRepeatElements(list);
System.out.println(list);
System.out.println(newList);
}
//第一种迭代方式
public static ArrayList clearRepeatElements(ArrayList list){
//1.先创建一个 新的 ArrayList 集合对象, 然后用来把找到的不重复的数据装进去
ArrayList newList = new ArrayList();
//遍历 原本的list 集合,把元素一个一个拿出来,放入到新的集合,如果 已经放过了,那么不放了
//2.获取到list集合的 迭代器 进行迭代
Iterator it = list.iterator();//多个标记 ——ListIterator是一个原始类型。
//泛型类型的引用ListIterator < E > 参数化
while(it.hasNext()){
//获取到每一个 元素
Book book = (Book)it.next();//本身是Iterator类型的
//再 判断新的集合中是否包含 这个元素,如果不包含,就放入新的集合中
if(!newList.contains(book)){ //如果不包含元素,那么就存入到这个 集合中
newList.add(book);
}
}
return newList;
}
ArrayList newList = new ArrayList();
for(int i = 0;i < List.size();i++){
if(newList.containsAll(List)){
break;
}else{
newList.add(List);
}return newList;
}return newList;
}*/
}
class Book{
//编号 和 书名 作为属性保存一本书的信息
int id;
String name;
//构造方法
public Book(int id, String name){
this.id = id;
this.name = name;
}
//重写toString方法,否则是类名.包名.哈希值的
public String toString(){
return "{书名:" + name + ", 编号是:" + id + "}";
}
//重写equals方法,否则是针对 hashCode进行的比较。
public boolean equals(Object obj){ //重写equals方法,类型转换
Book book =(Book)obj;
//只要编号一致,那么就认为是重复的元素
return this.id == book.id && this.name.equals(book.name);
}
}
import java.util.*;
public class Test {
/**
* 写一个方法, 用来清除 List 集合中的 重复元素
*
* 如果书Book 的编号一样,那么就认为是重复的元素
*
*/
public static void main(String[] args) {
ArrayList list = new ArrayList();
Book b1 = new Book(101, "红楼梦");
Book b2 = new Book(102, "西游记");
Book b3 = new Book(103, "水浒传");
Book b4 = new Book(104, "三国演义");
Book b5 = new Book(101, "冰与火之歌");
list.add(b1);
list.add(b2);
list.add(b3);
list.add(b4);
list.add(b5);
list.add(new Book(104, "三国演义"));
list.add(new Book(105, "群鸦的盛宴"));
list.add(new Book(102, "血色婚礼"));
//测试写的方法
ArrayList newList = clearRepeatElements(list);
System.out.println(list);
System.out.println(newList);
}
//第一种迭代方式
public static ArrayList clearRepeatElements(ArrayList list){
//1.先创建一个 新的 ArrayList 集合对象, 然后用来把找到的不重复的数据装进去
ArrayList newList = new ArrayList();
//遍历 原本的list 集合,把元素一个一个拿出来,放入到新的集合,如果 已经放过了,那么不放了
//2.获取到list集合的 迭代器 进行迭代
Iterator it = list.iterator();//多个标记 ——ListIterator是一个原始类型。
//泛型类型的引用ListIterator < E > 参数化
while(it.hasNext()){
//获取到每一个 元素
Book book = (Book)it.next();//本身是Iterator类型的
//再 判断新的集合中是否包含 这个元素,如果不包含,就放入新的集合中
if(!newList.contains(book)){ //如果不包含元素,那么就存入到这个 集合中
newList.add(book);
}
}
return newList;
}
/*
//第二种迭代方式
public static ArrayList clearRepeatElements(ArrayList List){ArrayList newList = new ArrayList();
for(int i = 0;i < List.size();i++){
if(newList.containsAll(List)){
break;
}else{
newList.add(List);
}return newList;
}return newList;
}*/
}
class Book{
//编号 和 书名 作为属性保存一本书的信息
int id;
String name;
//构造方法
public Book(int id, String name){
this.id = id;
this.name = name;
}
//重写toString方法,否则是类名.包名.哈希值的
public String toString(){
return "{书名:" + name + ", 编号是:" + id + "}";
}
//重写equals方法,否则是针对 hashCode进行的比较。
public boolean equals(Object obj){ //重写equals方法,类型转换
Book book =(Book)obj;
//只要编号一致,那么就认为是重复的元素
return this.id == book.id && this.name.equals(book.name);
}
}
0 0
- 集合中的迭代
- 集合(二)—集合中的迭代
- 集合框架类中的枚举和迭代
- 《黑马程序员》 集合中的元素的迭代方式
- 31-迭代输出Map集合中的元素信息
- jsp两次迭代显示实体中的set集合
- 集合-泛型-迭代
- 集合迭代
- 如何迭代通过集合
- 迭代集合删除问题
- 集合、list、迭代、linkedList
- Java集合迭代输出
- 集合迭代删除元素
- 迭代集合的方式
- 集合与map迭代
- Iterator 集合的迭代
- Java集合Iterator迭代
- java集合-Iterator迭代
- 208. Implement Trie (Prefix Tree)
- 调用WebService时加入身份验证,以拒绝未授权的访问
- 2017年春运,那些抢票软件还能用么?
- 211. Add and Search Word - Data structure design
- webservice 采用SSL实现加密传输
- 集合中的迭代
- Windows/Linux环境下查看Java进程ID方法
- 51单片机学习
- 服务器ionCube扩展/组建安装教程
- php 判断文件或目录是否存在
- VC++扩展名解读大全
- MFC添加自定义消息
- DOS命令大全
- Oracle基本语法