现在的位置: 首页 > 综合 > 正文

ArrayList和Iterator的初步使用(二)

2013年10月21日 ⁄ 综合 ⁄ 共 1486字 ⁄ 字号 评论关闭
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);
		}
	}
}

抱歉!评论已关闭.