关于集合框架的一些……

  所谓的集合框架,就是Java的设计者把常用的数据结构和算法,抽象出来,定义一系列的接口,供人们去使用,即Java collection frame

 

集合框架的层次结构如图:

1、关于list 和 set 的比较:set 检索效率比较低,删除和插入的效率比较高,删除和插入时不会导致元素相对位置的变化。

       而list 类似的是数据结构中的数组,list 可以动态增长,对于元素的检索比较容易,但是,删除和插入会引起元素位置的变化。

2、set 和 list 的子类比较 

    2.1  hashset  

          hashset采用hash算法,以哈希表的方式存储,所以,删除和插入的速度会很快。hashset中,不能存放相同的数据。treeset可以自动维持一定的顺序。

    2.2  Vector,ArrayList, LinkedList 比较

          ArrayList 对应的是数据结构中的动态数组。   一般开发中经常用到,对数据的遍历。

          LinkedList 对应的是 队列,栈,链表。和ArrayList相比,删除和插入比较快,但是,索引比较慢。

          Vector 对应的也是动态数组,但是 Vector 是线程安全的,涉及到加锁的问题,所以 相对来说,效率较低。

3、关于Map接口,从图中,也可以看到,Map接口是和coolection接口是平级的,   Map 就是一组键值对,   不允许有重复的键出现。

      hashTable 是继承自Map接口,和hashMap的区别是:

      hashTable 是线程安全的(重量级),不允许空的键值对

       hashMap  是非线程安全的(轻量级),允许有空的键值对。

     PS:一些线程安全的类: Vector  Stack  Emuration HashTable

 4、关于迭代器以及它的使用

     迭代器主要就是帮助我们拿出集合中的值。Iterator

     使用:

     ArrayList  list=new ArrayList();

     Iterator it=list.iterator();//得到迭代器对象

    while(it.next())

{

//取出迭代器中的值

}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值