Collection类及Iterator

仅供个人学习,如有侵权请联系删除。          

     需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。
                Student[] arr = new Student[5];                    //存储学生对象
                arr[0] = new Student("张三", 23);
                arr[1] = new Student("李四", 24);
                arr[2] = new Student("王五", 25);
                arr[3] = new Student("赵六", 26);
                arr[4] = new Student("马哥", 20);
                for (int i = 0; i < arr.length; i++) {
                    System.out.println(arr[i]);
                }

public class Student {
	private String name;
	private int age;
	public Student(){
	}
	public Student(String name,int age){
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	}
}
	public static void main(String[] args) {
		//int[] arr = new int[5];			//创建基本数据类型数组
		Student[] arr = new Student[5];		//创建引用数据类型数组
		arr[0] = new Student("张三", 23);	//创建一个学生对象,存储在数组的第一个位置
		arr[1] = new Student("李四", 24);	//创建一个学生对象,存储在数组的第二个位置
		arr[2] = new Student("王五", 25);	//创建一个学生对象,存储在数组的第三个位置
		for(int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}

 

         案例演示    
                基本功能演示
                boolean add(E e)
                boolean remove(Object o)
                void clear()
                boolean contains(Object o)
                boolean isEmpty()
                int size()

ArrayList的父类的父类重写toString方法,所以在打印对象的引用的时候,输出的结果不是Object类中toString的结果

public static void main(String[] args) {
		//demo1();
		demo2();
	}

	private static void demo2() {
		ArrayList c = new ArrayList();		
		c.add("a");
		c.add("b");
		c.add("c");
		c.add("d");

		//c.remove("b");										//删除指定元素
		//c.clear();											//清空集合
		System.out.println(c.contains("b"));					//判断是否包含
		System.out.println(c.isEmpty());
		System.out.println(c.size()); 							//获取元素的个数
		System.out.println(c);
	}
/*
    true
    false
    4
    [a, b, c, d]

*/
	public static void demo1() {
		Collection c = new ArrayList();						//父类引用指向子类对象		                                
        //通常用的是ArrayList list = new ArrayList();,此时仅仅为了使用List类中的方法
		boolean b1 = c.add("abc");
		boolean b2 = c.add(true);							//自动装箱new Boolean(true);
		boolean b3 = c.add(100);
		boolean b4 = c.add(new Student("张三",23));			
		boolean b5 = c.add("abc");
		
		System.out.println(b1);
		System.out.println(b2);
		System.out.println(b3);
		System.out.println(b4);
		System.out.println(b5);
		
		System.out.println(c.toString());
	}
/*
true
true
true
true
true
[abc, true, 100, Student [name=张三, age=23], abc] 
在Student类中重写了toString方法,否则用的是Object中的toString方法。
*/

 

集合的遍历

	public static void main(String[] args) {
		demo1();
		//demo2();
	}

	private static void demo2() {
		Collection c = new ArrayList();
		c.add(new Student("张三", 23));				//Object obj = new Student("张三",23);
		c.add(new Student("李四", 24));
		c.add(new Student("王五", 25));
		c.add(new Student("赵六", 26));
		
		Object[] arr = c.toArray();					//将集合转换成数组
		for (int i = 0; i < arr.length; i++) {
			//System.out.println(arr[i]);
			Student s = (Student)arr[i];			//向下转型
			System.out.println(s.getName() + "..." + s.getAge());
		}
	}
/*
张三...23
李四...24
王五...25
赵六...26
*/

	public static void demo1() {
		Collection c = new ArrayList();
		c.add("a");
		c.add("b");
		c.add("c");
		c.add("d");
		
		Object[] arr = c.toArray();						//将集合转换成数组
		for(int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
/*
a
b
c
d
*/

                

                带All的功能演示
                boolean addAll(Collection c)    //将C集合中的元素加入到本集合中
                boolean removeAll(Collection c)        //移除本集合中包含C中的元素,如果c中的元素本集合中没有,则不删除。
                boolean containsAll(Collection c)    //判断c集合中的元素是否都在本集合中
                boolean retainAll(Collection c)        //取交集,如果调用的集合改变就返回true,如果调用的集合不变就返回false

public static void main(String[] args) {
		demo1();
		//demo2();
		//demo3();
		//demo4();
	}

	public static void demo4() {
		Collection c1 = new ArrayList();
		c1.add("a");
		c1.add("b");
		c1.add("c");
		c1.add("d");
		
		Collection c2 = new ArrayList();
		c2.add("a");
		c2.add("b");
		c2.add("c");
		c2.add("d");
		c2.add("e");
		c2.add("f");
		
		//取交集,如果调用的集合改变就返回true,如果调用的集合不变就返回false
		boolean b = c1.retainAll(c2);					//取交集
		System.out.println(b);
		System.out.println(c1);
		/*
		 * false
		   [a, b, c, d]
		 * */
	}

	public static void demo3() {
		Collection c1 = new ArrayList();
		c1.add("a");
		c1.add("b");
		c1.add("c");
		c1.add("d");
		
		Collection c2 = new ArrayList();
		c2.add("a");
		c2.add("b");
		c2.add("z");
		
		boolean b = c1.containsAll(c2);				//判断调用的集合是否包含传入的集合
		System.out.println(b);
		//false
	}

	public static void demo2() {
		Collection c1 = new ArrayList();
		c1.add("a");
		c1.add("b");
		c1.add("c");
		c1.add("d");
		
		Collection c2 = new ArrayList();
		c2.add("a");
		c2.add("b");
		c2.add("z");
		
		boolean b = c1.removeAll(c2);					//删除的是交集
		System.out.println(b);
		System.out.println(c1);
		/*
		   true
		   [c, d]
		 * */
	}

	public static void demo1() {
		Collection c1 = new ArrayList();
		c1.add("a");
		c1.add("b");
		c1.add("c");
		c1.add("d");
		
		Collection c2 = new ArrayList();			//alt + shift + r改名
		c2.add("a");
		c2.add("b");
		c2.add("c");
		c2.add("d");
		
		//c1.addAll(c2);							
		//将c2中的每一个元素添加到c1中,[a, b, c, d, [a, b, c, d]]
		c1.add(c2);									
		//将c2看成一个对象添加到c1中,[a, b, c, d, a, b, c, d]
		System.out.println(c1);
	}

 

      迭代
      迭代器概述
      集合是用来存储元素,存储的元素需要查看,那么就需要迭代(遍历) 

public static void main(String[] args) {
		//demo1();
		demo2();
	
	}

	public static void demo2() {
		Collection c = new ArrayList();
		c.add(new Student("张三", 23));				//Object obj = new Student("张三",23);
		c.add(new Student("李四", 24));
		c.add(new Student("王五", 25));
		c.add(new Student("赵六", 26));
		
		//获取迭代器
		Iterator it = c.iterator();
		while(it.hasNext()) {
			//System.out.println(it.next());
			Student s = (Student)it.next();			//向下转型
			System.out.println(s.getName() + "..." + s.getAge());
		}
	}
/*
张三...23
李四...24
王五...25
赵六...26
*/

	public static void demo1() {
		Collection c = new ArrayList();
		c.add("a");
		c.add("b");
		c.add("c");
		c.add("d");
		
		//对集合中的元素迭代(遍历)
		Iterator it = c.iterator();					//获取迭代器
		/*boolean b1 = it.hasNext();					//判断集合中是否有元素,有就返回true
		Object obj1 = it.next();
		System.out.println(b1);
		System.out.println(obj1);
		
		boolean b2 = it.hasNext();					//判断集合中是否有元素,有就返回true
		Object obj2 = it.next();
		System.out.println(b2);
		System.out.println(obj2);*/
		
		while(it.hasNext()) {
			System.out.println(it.next());
		}
	}
    /*a
      b
      c
      d
    */

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值