Collection概述
一、Collection
1.概念
集合**:集合是java中提供的一种容器,可以用来存储多个数据。(基本本质就是一工具,它存放在java.util包中。在Collection
接口定义着单列集合框架中最最共性的内容。)
2.集合与数组区别
1.数组的长度是固定的,集合的长度是可以改变的。
2.数组中存储的都是同一类型的元素,可以存储基本的数据类型值。
集合的存储都是对象,而且对象的类型可以不一致。在开发中对象多的时候,使用集合来存储。
(Collection虽然可以存储各种对象,但实际上通常Collection只存储同一类型对象,jdk5之后新增泛型的语法,让你在设计API时可以指定类或方法支持泛型,这样我们使用API的时候也变得更为简洁,并得到了编译时期的语法检查。:可以在类或方法中预支地使用未知的类型。一般在创建对象时,将未知的类型确定具体的类型。当没有指定泛型时,默认类型为Object类型。)
3.常用方法
*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()`: 把集合中的元素,存储到数组中。
二、迭代器
摘要:
在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器。
迭代:Collection 集合元素的获取方式,取元素之前要判断集合是否含有元素,如果有的话就取出来继续判断,一直把集合中的所有元素取出来,这种取出的方式被称为迭代
1.Iterator iterator()😗*
获取集合对应的迭代器,用于遍历集合中的元素。关羽元素返回的顺序没有任何保证(除此collection是某一个能提供保证顺序的类实例)
2.迭代:
即Collection集合元素的通用获取方式,在取出元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出来,一直把集合中的所有元素全部取出来,这种去厨房是专业术语就叫做迭代。
3.Iterator接口的常用方式如下:
public E next()
:返回迭代的下一个元素
public boolean hasNext()
:如果仍有元素可以迭代,则返回true
4.使用步骤:
1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)。
2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
3.使用Iterator接口中的方法next取出集合中的下一个元
** !!!!注意:在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。**
5.代码示例
public class Mytest5 {
public static void main(String[] args) {
Phone p1 = new Phone("苹果", 10000);
Phone p2 = new Phone("华为", 4900);
Phone p3 = new Phone("小米", 3900);
Collection list = new ArrayList();
list.add(p1);
list.add(p2);
list.add(p3);
Iterator iterator = list.iterator();
while (iterator.hasNext()){
Phone phone =(Phone) iterator.next();
System.out.println(phone.getName() + "$$$" + phone.getPrice());
}
}
}
Phone 类就不写这了。。。。