增强for循环 Collenction类 迭代器

集合和数组的区别

集合的本质就是一个长度可变的数组,最大的差别就是数组的长度是固定的

Collection集合的常用功能

 
collection集合是所有单列集合的父接口,在Collection集合当中定义所有单列集合的共性的API方法,这些方法适用于所有的单列集合.增删改查功能
Collection是一个抽象类所以我们只能使用多态的方法来创建集合对象,他的实现类之一ArrayList集合类
Collection<String> col1= new ArrayList<>();

- public boolean add(E e):把给定的对象添加到指定的或者当前的集合当中.
//add方法,一般情况到返回true,所以可以不用接收.
boolean b1 = list.add("小王");
- public void clear():清空集合当中的所有的元素.
col1.clear();//清空整个集合,置所有值为Null,索引归零

- public boolean remove(E e): 把给定的对象从当前集合当中删除掉.
boolean b2 = col1.remove("小王");//此时小王被从集合中删除

- public boolean contains(E e):判断当前集合当中是否包含给点的对象元素.
boolean b4 = col1.contains("小王");//判断该集合是否有小王,找到就返回true没找到就是false
System.out.println(b4);//false
- public boolean isEmpty():判断当前集合是否为空.
boolean empty = col1.isEmpty()//判断该集合是否为空不是为Null 有元素为true,没有元素就位false

- public int size():获取当前集合元素的个数.
int i=col1.size();他会返回集合中的元素的个数.

- public Object[] toArray():把当前集合中的元素,存储到一个数组当中.
Object[] arr = col1.toArray();
一种快捷操作,能够把集合之中所有的元素从本集合放到一个数组中

能使用使用迭代器对集合进行取元素
Iterator是一个接口类,定义了两个方法hasNext()和next();而因为是接口所以无法被创建对象
而Collection抽象类实现了iterator接口并提供了一个api方法可以返回iterator对象.
去元素动作
我们可以通过三步来使用迭代器取出集合中的元素
1.获取迭代器
2.使用hasNext()方法判断下一个要取出的元素是否为null
3.使用next()方法来取出元素.
举个栗子;
Collection<String> coll = new ArrayList<>();//通过多态获得Collenction集合抽象类的实现类之一的ArrayList类的对象
Iterator<String> iterator=coll.iterator();//通过Collection类的api方法来获取iterator迭代器对象
while(iterator.hasNext()){
System.out.println("iterator1.next()");
}
备注:使用迭代器的时候一定要用hasNext()方法来判断下一个元素是否为null
不然很容易抛异常
在调用Iterator接口当中的next方法之前,迭代器的索引位位于第一个元素之前,不指向任何元素,
当第一次调用迭代器的next方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回,
当再次调用next方法时,迭代器的索引会指向第二个元素并将该元素返回,以此类推.直到hasNext返回
false时表示迭代器到达了集合的末尾,终止对元素的遍历.
NoSuchElementException 
备注:每次创建一个迭代器,他的迭代进程是不还原的,除非再次创建一个新的迭代器.迭代进程不返回,那么意味着我们取出的迭代元素不可被单个迭代器二次提取.
另一种也可以遍历出集合中的元素
增强for循环 foreach
for(String col:coll){//集合的数据类型 变量名: 集合的名字
System.out.println(col);
}








原文地址:https://www.cnblogs.com/rosiness/p/14070648.html