ArrayList和Iterator的初步使用(二)

简介: package cn.cp; //ArrayList和Iterator的初步使用(二) //要求:不要让ArrayList保存相同的元素(它本来是可以保存重复元素的) //方法:重写equals()方法 //注意: //(1)contains()方法的使用 //(2)在第一处定义Iterator iterator=arrList2.iterator()是错误的。
package cn.cp;
//ArrayList和Iterator的初步使用(二)
//要求:不要让ArrayList保存相同的元素(它本来是可以保存重复元素的)
//方法:重写equals()方法
//注意:
//(1)contains()方法的使用
//(2)在第一处定义Iterator iterator=arrList2.iterator()是错误的。导致后面的while()错误
//因为此时的容器里面还没有东西,这时候它的迭代器是拿不到对象的。而在往容器里面添加元素后
//再获取Iterator,这个迭代器才可以进行迭代
import java.util.ArrayList;
import java.util.Iterator;

class Student {
	private int age;
	private String name;

	public Student(int age, String name) {
		super();
		this.age = age;
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public boolean equals(Object obj) {// 重写equals方法
		Student st = (Student) obj;
		if (st.age == this.age && st.name == this.name) {
			return true;
		} else {
			return false;
		}
	}
}

public class ArrayListTest2 {
	public static void main(String[] args) {
		ArrayListTest2 arrayListTest2 = new ArrayListTest2();
		ArrayList arrList2 = new ArrayList();
		// Iterator iterator=arrList2.iterator();//第一处.在此定义是不可以的。while()时出错
		Student student1 = new Student(11, "mmha");
		Student student3 = new Student(13, "haha");
		Student student4 = new Student(13, "haha");//无法添加此重复元素
		arrayListTest2.addObj(arrList2, student1);
		arrayListTest2.addObj(arrList2, student3);
		arrayListTest2.addObj(arrList2, student4);
		Iterator iterator = arrList2.iterator();//第二处.
		while (iterator.hasNext()) {
			Student stu = (Student) iterator.next();
			System.out.println("学生的姓名是:" + stu.getName());
		}
	}

	public void addObj(ArrayList arrayList, Student s) {
		if (arrayList.contains(s)) {
			System.out.println(s.getName() + "已存在");
		}
		if (!arrayList.contains(s)) {
			arrayList.add(s);
		}
	}
}

相关文章
|
30天前
|
存储
ArrayList的使用
ArrayList的使用
13 3
|
4月前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
39 0
|
4月前
list转迭代器Iterator
list转迭代器Iterator
|
Java 测试技术 索引
深入理解ArrayList(三)
深入理解ArrayList(三)
64 0
详解ArrayList
1.数据结构 底层使用Object类型的数组实现,线程不安全,添加元素时如果内存已满则会开辟新空间,将原数组copy过去。
89 0
深入理解ArrayList(一)
深入理解ArrayList(一)
64 0
|
算法
深入理解ArrayList(四)
深入理解ArrayList(四)
76 0
|
索引 容器
Iterator与ListIterator有什么区别
Iterator与ListIterator有什么区别
|
JavaScript 前端开发 Java
彻底理解 for of 和 Iterator
本文主要来说下ES6的Iterator,目的在于理解它的概念、作用、以及现有的应用,最后学以致用。 Iterator可以说是ES6内相当重大的一个特性,也是很多其他特性运行的基石。 为什么Iterator地位如此之高呢?
111 1
彻底理解 for of 和 Iterator
|
安全 算法 Java
对比Vector、 ArrayList、 LinkedList有何区别
对比Vector、 ArrayList、 LinkedList有何区别
98 0
对比Vector、 ArrayList、 LinkedList有何区别