集合
因为我们在有时存储数组时需要去给数组中在添加,但是数组的长度是固定的,不支持长度
不断在变化对于这种情况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);
}
}
}