【5】集合 Collection接口(add remove clear contains inEmpty size toArray)迭代器(hasNext next) 增强for循环

集合

 集合:集合是Java中提供的一种容器,可以用来存储多个 数据

 集合和数组有什么区别?

  1. 数组的长度是固定。集合的长度是可变的
  2. 数组中存储的是统一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象类型可以不一致。在开发中一般对象多的时候,使用集合进行存储

 集合框架

Collection接口

                /*
		 * Collection是所有单列集合的父接口,这些方法可用于操作所有的单列集合
		 * public boolean add(E e):  把给定的对象添加到当前集合中 。
		 * public void clear():清空集合中所有的元素。
		 * public boolean remove(E e): 把给定的对象在当前集合中删除。
		 * public boolean contains(E e): 判断当前集合中是否包含给定的对象。
		 * public boolean isEmpty(): 判断当前集合是否为空。
		 * public int size(): 返回集合中元素的个数。
		 * public Object[] toArray(): 把集合中的元素,存储到数组中。
		 * */
		
		/*
		 * public boolean add(E e):  把给定的对象添加到当前集合中 。
		 * */
		Collection<String> c = new ArrayList<String>();
		c.add("张三");
		c.add("赵四");
		c.add("王五");
		c.add("李白");
		System.out.println(c);//[张三, 赵四, 王五, 李白]
		
		/*
		 * public boolean remove(E e): 把给定的对象在当前集合中删除。
		 * 			返回一个boolean值 
		 * 				删除元素存在 删除成功 返回true
		 * 				删除元素不存在 删除失败 返回false
		 * */
		boolean i = c.remove("李白");
		System.out.println(i); //true
		boolean j = c.remove("田七");
		System.out.println(j); //alse
		
		/*
		 * public boolean contains(E e): 判断当前集合中是否包含给定的对象。
		 * 		包含返回true
		 * 		不包含返回false
		 * */
		boolean k = c.contains("张三");
		System.out.println(k);//true
		boolean l = c.contains("李白");
		System.out.println(l);//false
		
		/*
		 * public boolean isEmpty(): 判断当前集合是否为空。
		 * 		空的返回true
		 * 		不为空返回false
		 * */
		boolean empty = c.isEmpty();
		System.out.println(empty);//false
		
		/*
		 * public int size(): 返回集合中元素的个数。
		 * */
		int size = c.size();
		System.out.println(size);
		
		/*
		 * public Object[] toArray(): 把集合中的元素,存储到数组中。
		 * */
		Object[] array = c.toArray();
		for (int m = 0; m < array.length; m++) {
			System.out.print(array[m]+" "); 
		}//张三 赵四 王五 
		
		/*
		 * public void clear():清空集合中所有的元素。
		 * */
		c.clear();
		System.out.println(c);

Iterator迭代器

Java.util.Iterator

Iterator迭代器,是一个接口,无法直接使用,需要使用Iterator接口的实现类对象。(获取Iterator实现类方法:Collection接口中有一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象)

                /*
		 * 有两个常用的方法
		 * public E next():返回迭代的下一个元素。
		 * public boolean hasNext():如果仍有元素可以迭代,则返回 true。
		 * */
		
		/*
		 * 迭代器的使用步骤
		 * 1,使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
		 * 2,使用Iterator接口中的方法hasNext判断还有没有下一个元素
		 * 3,使用Iterator接口中的方法next取出集合中的下一个元素
		 * */
		
		Collection<String> c = new ArrayList<String >();
		c.add("张三");
		c.add("赵四");
		c.add("李白");
		c.add("妲己");
		c.add("虞姬");
		
		//Iterator接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型
		Iterator<String> it = c.iterator();
		while(it.hasNext()){
			String next = it.next();
			System.out.println(next);
		}

增强for循环

                /*
		 * 增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写
		 *    用来遍历集合和数组
		 *    
		 *    格式:
		 *    for(集合/数组的数据类型 遍历名:集合/数组名){
		 *    		sout(变量名);
		 *    }
		 * */
		
		//遍历集合
		ArrayList<String> list = new ArrayList<>();
		list.add("aaa");
		list.add("bbb");
		list.add("ccc");
		list.add("ddd");
		list.add("eee");
		for (String string : list) {
			System.out.println(string);
		}
		
		//遍历数组
		int[] a = {1,2,3,6,5,5,2};
		for (int i : a) {
			System.out.println(i);
		}

猜你喜欢

转载自blog.csdn.net/dyt998/article/details/112754312