--------android培训、java培训、期待与您交流! ----------
集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
java集合框架:
1. 什么是框架:类库的集合
2.集合框架:用来表示和操作的统一的架构,包含了实现集合的接口与类
3.集合:存放数据的容器
集合框架包含了两部分:一部分是接口,一部分是类
4.为什么会出现接口:因为集合框架中的很多类 功能是相似的,所以用接口来规范类。
集合Collection接口
--Collection 是任何对象组,元素各自独立,通常拥有相同的套用规则。Set List由它派生。
基本操作 增加元素add(Object obj); addAll(Collection c);
删除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
删除元素 remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection c);
访问/遍历集合元素的好办法是使用Iterator接口(迭代器用于取代Enumeration)
<span style="font-size:14px;">Public interface Iterator{
Public Boolean hasNext(};
Public Object next(};
Public void remove(};
} </span>
集合特点:
- List:保证以某种特定插入顺序来维护元素顺序,即保持插入的顺序,另外元素可以重复。
- ArrayList:是用数组实现的,读取速度快,插入与删除速度慢(因为插入与删除时要移动后面的元素),适合于随机访问。
- Vector:功能与ArrayList几乎相同,也是以数组实现,添加,删除,读取,设置都是基于线程同步的。
- LinkedList:双向链表来实现,删除与插入速度快,读取速度较慢,因为它读取时是从头向尾(如果节点在链的前半部分),或尾向头(如果节点在链的后半部分)查找元素。因此适合于元素的插入与删除操作。
- Set:维持它自己的内部排序,随机访问不具有意义。另外元素不可重复。
- HashSet:是最常用的,查询速度最快,因为 内部以HashMap来实现,所以插入元素不能保持插入次序。
- LinkedHashSet:继承了HashSet,保持元素的插入次序,因为内部使用LinkedHashMap实现,所以能保持元素插入次序。
- TreeSet:基于TreeMap,生成一个总是处于排序状态的set,它实现了SortedSet接口,内部以 TreeMap来实现
- TreeMap:键以某种排序规则排序,内部以red-black(红-黑)树数据结构实现,实现了SortedMap接口
对List的选择:
- 对于随机查询与迭代遍历操作,数组比所有的容器都要快。
- 从中间的位置插入和删除元素,LinkedList要比ArrayList快,特别是删除操作。
- Vector通常不如ArrayList快,则且应该避免使用,它目前仍然存在于类库中的原因是为了支持过去的代码。
- 最佳实践:将ArrayList作为默认首选,只有当程序的性能因为经常从list中间进行插入和删除而变差的时候,才去选择LinkedList。当然了,如果只是使用固定数量的元素,就应该选择数组了。
<span style="font-family:SimSun;"><span style="font-size:14px; white-space: normal;">import java.util.*;</span><span style="font-size:14px;">
class LinkedList
{
public static void main (String[] args)
{
Duilie d1 = new Duilie();
d1.myAdd("java01");
d1.myAdd("java02");
d1.myAdd("java03");
d1.myAdd("java04");
System.out.println(d1.myGet());
}
}
class Duilie
{
private LinkedList link;
Duilie()
{
link = new LinkedList();
}
public void myAdd(Object obj)
{
link.addFirst(obj);
}
public Object myGet()
{
return link.removeLast();
}
public boolean isNull()
{
return ( link.isEmpty();
}
}</span>
</span>
本文深入介绍了Java集合框架的基础概念、核心接口与实现类,包括Collection、Set、List等,并对比了不同集合类的特点及应用场景。
1万+

被折叠的 条评论
为什么被折叠?



