所有抽象出来的数据结构和操作统称为collections framework 框架.java程序员不必考虑数据结构的算法细节,只需要定义具体应用的数据结构实体.数据结构上的方法也用不着程序员写!
Set------无序,不允许重复
List-----有序,可以有重复元素
ArrayList 非常象Vector , 它实现了可变长的数组。而LinkedList 则有些不同,它是List的链表实现.
LinkedList 可以成为堆栈,队列或者双向链表.
Iterators 迭代器
Iterators 是获取集合中元素的过程
Map接口是Dictionary 类的替代品
HashMap是以哈希表的形式存储键值对,速度快!非线程安全的,轻量级对象,效率高
HashTable是线程安全的,重量级对象,效率低.
Dictionary 类提供了根据关键字查询的功能.
Dictionary 是个abstract的类,因此我们不直接使用它。直接使用的一般是Hashtable 类
Properities 类
哈希表里存的关键字一值对可以是各种类型.而properties就相对简单多了,它只放字符串对
Properities用setProperty 和getProperty来处理值,此类的值只能是String!
public void testSet(){
//Set无序的容器,导致里面不能存在相同的元素
//HashSet 以哈希表形式存放,操作速度很快(添加,修改)
//效率:插入的速度快,但是查询的速度不敢恭维,以扫描的形式!
Set set=new HashSet();//针对抽象编程,右边是子类,左边是父类!接口无法实例化(Set)
set.add("one");
set.add("second");
set.add("3rd");
set.add(new Integer(4));
set.add(new Float(5.0F));
set.add("second");//重复,不能添加
set.add(new Integer(4));//重复,不能添加
System.out.println("set="+set.toString());
}
public void testList(){
//List有序的容器,导致里面能存在相同的元素,容器自动增长,是动态数组!
//效率:查找某一个元素效率很高,当删除时效率反而比较低,(引起其它元素的重新排列)
List list=new ArrayList();
list.add("one");
list.add("second");
list.add("3rd");
list.add(new Integer(4));
list.add("second");//重复,可以添加
list.add(new Integer(4));//重复,可以添加
System.out.println("list="+list.toString());
}