
Java中大体常用的容器类的结构图就是这样
容器类的作用是存贮对象的。
在接口collection中一些方法:(下面的E代表了Object)
主要方法:
容器类中添加、删除操作方法列表
boolean add(Object o)添加对象到集合
boolean remove(Object o)删除指定的对象
容器类中元素查询操作方法列表
int size()返回当前集合中元素的数量
boolean contains(Object o)查找集合中是否有指定的对象
boolean isEmpty()判断集合是否为空
Iterator iterator()返回一个迭代器
容器类中组操作方法列表(组操作指作用于元素组或整个集合的操作)
boolean containsAll(Collection c)查找集合中是否有集合c中的元素
boolean addAll(Collection c)将集合c中所有的元素添加给该集合
void clear()删除集合中所有元素
void removeAll(Collection c)从集合中删除c集合中也有的元素
void retainAll(Collection c)从集合中删除集合c中不包含的元素
容器类中转换操作(转换操作:作用于集合与数组间的转换)
Object[] toArray() 把此Collection转成对象数组()
(注意:可以把集合转换成任何其他的对象数组,但是,不能直接把集合转换成基本数据类型的数组,基本类型有byte、short、char、int、long、float、double、bool)
容器中元素类型都为Object类型(除非有预定义的泛型定义,意思为通过泛型定义后就边转换为所定义的泛型的类型),从容器取得元素时,必须把它转换成原来的类型即存放前的类型
如何遍历集合中所有元素?(Collection对象中没有提供get()方法)
答:通过Iterator迭代器,迭代器Iterator接口中的方法列表(迭代器的游标指针是开始时是指向第一个元素的的前面的)
boolean hasNext() 判断游标右边是否有元素
Object next() 返回游标右边的元素并将游标移动到下一个位置
void remove() 删除游标左面的元素(用得不多)
如:
ArrayList a = new ArrayList();
对其进行一系列的赋值操作,下面将要遍历容器中的元素
方法一 方法二:
for(Iterator i=a.iterator();i.hasNext>0;) Iterator i = a.iterator();
System.out.println(i.next()); while(i.hasNext()){ System.out.println(i.next())}
补充:若不是遍历打印,而是取出容器内的元素进行赋值,则要注意强制类型转换(使用过泛型则不用)
如:for(Iterator i=a.iterator();i.hasNext();) 而使用过泛型的,如:
String s = (String)i.next(); ArrayList<String> a = new ArrayList<String>();
Iterator i = a.iterator();
while(i.hasNext()){
String s = i.next();
}
List接口继承了Collection接口。List提供了对象的有序存放功能,其中存放的对象也允许重复。List的实现类有LinkedList,ArrayList ,Vector ,Stack。"重复":是指两个对象通过equals()方法判断相等。注意:有序是指元素存入的顺序与取出的顺序相同,不是指按照某个规律自动排序好来存储。
Set是一个不允许有重复元素的集合。 Set的实现类有HashSet、LinkedHashSet和TreeSet。不允许存储重复的元素其含义为:当容器中已经存储了一个相同的元素时,无法实现添加一个完全相同的元素,也无法将已有的元素修改成与其它元素相同。
Map是一个映射接口,即key-value键值对。Map中的每一个元素包含“一个key”和“key对应的value”,Map中键是唯一标识,不能重复的。Map的实现类有HashMap、LinkedHashMap、TreeMap
网友评论