主要为笔记。
集合Collection接口:用于存储数据的容器。
这里没有用对象代替数据,因为数据也能够添入进集合之中。
在jdk1.5版本之后,有了自动拆箱和自动装箱后。就可以这么写。
Collection con=new ArrayList();
con.add(3);
在jdk1.5版本之前
Collection con=new ArrayList();
con.add(Integer.ValueOf(3));
集合的作用和学过的数组很类似。因为都是用于存储数据的容器。
区别
数组的特点:长度定义后固定,类型统一
注:听大佬说,Object的数组可以存储所有类型,试验之后如实!
集合的特点:长度可变,类型随意
集合的特点也是集合的比数组优秀的一点。
Collection常用方法:取自Java API
boolean | add(E e) 确保此 collection 包含指定的元素(可选操作)。 |
void | clear() 移除此 collection 中的所有元素(可选操作)。 |
boolean | contains(Object o) 如果此 collection 包含指定的元素,则返回 true。 |
boolean | isEmpty() 如果此 collection 不包含元素,则返回 true。 |
boolean | remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。 |
int | size() 返回此 collection 中的元素数。 |
代码体现
package cn.collection;
class Demo{
public static void main(String[] args){
Collection con=new ArrayList();
con.add("binnid"); //添加元素
con.add("lgb"); //添加元素
con.clear() //清除所有元素
boolean isEmpty=con.isEmpty(); //判断集合是否为空,是的话返回true
con.add("lgb"); //添加元素
boolean isContains=con.contains("lgb"); //判断集合是否包含此元素,是的话返回true
con.remove("lgb"); //移除指定元素
int size=con.size(); //获取集合的长度
}
}
迭代器
Collection接口继承了Iterable
实现了Iterable接口允许对象成为foreach语句的目标。
像List,Set接口(还未学到),ArrayList就实现了Iterable。
代码体现
for(Iterator it=con.iterator();it.hasNext();){
Obejct obj=(Object)it.next();
}
boolean hasNext() 有元素可遍历。如果有元素可以遍历,返回true
Object next() 获取元素
或用foreach
for(Object obj : con){
}
注:如果要有顺序的迭代要看清楚当前对象的itrator()是否是有序的,部分Collection子类是无序的。
若要百分百实现有序,建议使用toArray()。
若没有元素能迭代,却还使用迭代器,则会报错