@[TOC]Collection集合
1、集合概述
集合是Java中一种容器,用来存储多个数据,集合和数组都是容器,但是它们之间是有区别的,首先,数组的长度是固定的,而集合的长度是可变的,其次,数组中存储的是同一类型的元素,可以存储基本数据类型值,而集合存储的都是对象,而且对象的类型还可以不一致,在实际开发中当对象多的时候,使用集合进行存储。
2、Collection集合
Collection是所有单列集合的父接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口是List和Set.
-
List 的特点是元素有序且可重复,List接口的主要实现类有ArrayList和LinkedList
-
Set 的特点是元素无序且不可重复,Set接口的主要实现类是HashSet和TreeSet
3、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 class Demo001 {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("杨幂");
coll.add("李敏");
coll.add("王聪聪");
System.out.println(coll);
coll.remove("李敏");
System.out.println(coll);
Object[] obj=coll.toArray();
for (int i = 0; i < obj.length; i++) {
System.out.println(obj[i]);
}
int num=coll.size();
System.out.println(num);
System.out.println(coll.contains("杨幂"));
System.out.println(coll.isEmpty());
coll.clear();
System.out.println(coll.isEmpty());
}
}
4、集合遍历迭代器Iterator
Iterator接口也是集合中的一员,与Collection/Map不同的是,它是用来迭代访问(遍历)Collection集合中的元素的。
Iterator是一个接口如果想要实现的话,得去找实现类 有点特殊
Collection接口中有一个方法iterator()这个方法就是返回的迭代器的实现类对象
接口Iterable 中的iterator
Iterator接口常用方法
1、public E next():返回迭代的下一个元素
2、public boolean hasNext():判断是否还有可迭代的元素,有则返回true。
注意:在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。
使用迭代器的步骤:
1、首先得有一个集合
2、调用集合对象的方法iterator()获取迭代器的实现类对象
使用Iterator接口去接收
3、通过iterator.hasNext()方法去判断有没有可迭代的下一个元素,有,则通过iterator.next()方法取出下一个元素
例子:
public class Demo001{
publc static void main(String[] args){
Collection<String> coll=new ArrayList<>();
coll.add("杨幂");
coll.add("唐嫣");
Iterator<String> iterator=coll.iterator();
while(iterator.hasNext()){
String s=iterator.next();
System.out.println(s);
}
}
}
5、增强for循环(foreach)
是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的,它的内部原理其实是Iterator迭代器,所以遍历过程中,不能对数据进行增删操作。
格式:for(元素的数据类型 变量:Collection集合或者数组){
//写操作代码
}
注意:增强for循环是专门用来遍历数组和集合的,其内部原理其实就是Iterator迭代器,通常只进行遍历元素不对集合元素进行增删操作。