AJPFX总结Collection集合(上)

Posted on 2019-05-18 23:37  AJPFX  阅读(97)  评论(0编辑  收藏  举报
出现集合类的原因
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一个方式.
数组和集合都是容器有何不同?
数组虽也可存储对象,但长度是固定的,集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象.
特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象.

 

Collection ****
         |--List:元素是有序的,元素可以重复。因为该集合体系有索引。
                   |--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。50%延长
                   |--LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。
                   |--Vector:底层是数组数据结构。被ArrayList替代了。因为增删,查询效率都低。线程同步。100%延长
元素不是很多,同时涉及增删与查询,建议使用ArrayList
         |--Set:元素是无序,元素不可以重复。
                   |--HashSet:底层数据结构是哈希表。是线程不安全的。不同步。
                   |--TreeSet:可以对Set集合中的元素进行排序。底层数据结构是二叉树。
共性方法
Void clear() 清空集合
         移除此列表中的所有元素。
boolean contains(Object o) 判断元素是否存在
         如果此列表中包含指定的元素,则返回 true
boolean isEmpty() 判断集合是否为空
         如果此列表中没有元素,则返回 true
int size() 获取集合长度
         返回此列表中的元素数。
boolean retainAll(Collection<?> c) 取交集
         仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
         al1. retainAll(al2);   al1中只会保留和al2中相同的元素
Iterator<E>iterator() 迭代器
         返回在此 collection 的元素上进行迭代的迭代器。
Iterator it = al.iterator();
                   while(it.hasNext())
                   {
                            sop("next:"+it.next());
                   }

Copyright © 2024 AJPFX
Powered by .NET 8.0 on Kubernetes