集合
因为我们在有时存储数组时需要去给数组中在添加,但是数组的长度是固定的,不支持长度 不断在变化对于这种情况java提供了一个集合框架,Collection<泛型>
集合的特点
1.长度是可变的 2.存储类型 , 存储的引用类型 3.存储元素,可以存储任意类型的元素
Collection
通过API查询Collection
Collection层次结构中的根接口。Collection表示一组对象,这些对象也称为collection的元素 一些collection允许有重复的元素,而另一些则不允许,一些collection是有序的,一些是无序的jdk不提供接口的任何直接实现:它提供更具体的子接口(如set和list)实现
接口的实例化:间接的或者直接的通过子实现类完成实例化
基本功能
boolean add(E e) 给集合中添加元素 boolean remove(Object o) 移除集合中的某个元素 void clear()暴力删除,删除一个集合中的所有元素(慎用) boolean contains(Object o) 判断当前集合中是否包含指定的元素 boolean isEmpty() 判断集合是否为空 int size() 获取集合的元素数
Collection的高级功能
boolean addAll(Collection c):添加一个集合中的所有元素 boolean removeAll(Collection c):删除集合元素删除一个算删除 boolean containsAll(Collection c):包含一个集合中的元素 包含当前集合中的所有元素,则返true boolean retainAll(Collection c):交集功能 A集合对B集合取交集,A对象.retainAll(B对象); 交集的元素保存在A中 boolean的返回值表达的意思是A集合中的数据是否发生变化,如果没有变化,就是false,化,true
迭代器
集合提供了专有遍历元素的方式:迭代器 Iterator iterator():获取迭代器 返回值类型接口 Iterator接口方法: Object next()获取下一个元素 boolean hasNext():判断是否有下一个可以迭代(遍历)元素
迭代器(作用:遍历集合中的元素)
迭代器接口Iterator interface Iterator{ boolean hasNext(); 判断 Object next();获取 } //顶层次接口 interface Iterable{ 抽象方法 Iterator iterator(); } interface Collection extends Iterable{ Iterator iterator(); } interface List extends Collection{ Iterator iterator(); } //子实现类 class ArrayList implements List{ public Iterator iterator() { return new Itr(); //接口的子实现类 } //成员内部类 private class Itr implements Iterator{ public boolean hasNext(){ 重写; } //重写 public Object next(){ } } }
迭代器遍历Collection集合
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class Test1 { public static void main(String[] args) { //创建collection集合对象 Collection c = new ArrayList(); //给集合中添加元素 c.add("呵呵"); c.add("哈哈"); c.add("嘻嘻"); c.add("呜呜"); //获取迭代器(作用:遍历集合中的元素) Iterator it = c.iterator(); while (it.hasNext()) { String string = (String) it.next(); System.out.println(string); } } }
List
List 继承自Collection 就会有Collection的迭代器的功能
List集合特点:
1)允许元素重复 2)存储和取出一致的(有序性)
List集合的特有功能
void add(int index,Object element):在指定位置处添加一个新的元素element Object remove(int index):删除指定位置处的元素 Object get(int index):获取指定位置处的元素 Object set(int index,Object element):在指定位置处设置(修改)元素
ListIterator
ListIterator listIterator():列表迭代器 ListIterator的成员方法 boolean hasNext() Object next()
列表迭代器遍历list集合
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class Test3 { public static void main(String[] args) { //创建一个List集合对象 List list = new ArrayList(); //添加元素 list.add("娃哈哈"); list.add("农夫山泉"); list.add("爽歪歪"); list.add("ad"); //获取列表列表迭代器 ListIterator li = list.listIterator(); while (li.hasNext()) { String string = (String) li.next(); System.out.println(string); } for (int i = 0; i < list.size(); i++) { String string = (String) list.get(i); System.out.println(string); } } }