集合的定义,map,List,ArrayList,LinkedList的定义和用法

程序设计的一个主要目的就是“将发生变化的东西同保持不变的东西分隔开”。

  1. 集合(Collection)
    一组单独的元素,通常应用了某种规则。在这里,一个List(列表)必需按特的顺序容纳元素,而一个Set(集)不可包涵任何重复的元素。相反,“包”(Bag)的概念未在新的集合库中实现,因为“列表”已经提供了类似的功能。

  2. 映射(Map)
    一系列“键-值”对(这已经在散列表身上得到了充分的体现)。从表象看,这似乎应该成为一个“键-值”对的“集合”,但假若试图按那种方式实现它,就会发现实现过程相当笨拙。这进一步证明了应该分离成单独的概念。另一方面,可以方便的查看Map的某个部分。只需创建一个集合,然后用它表示那一部分即可。这样一来,Map就可以返回自己键的一个Set,一个包含自己值的List或者包含自己“键-值”对的一个List。和数组相似,Map可方便扩充到多个“维”,毋需涉及任何新概念。只需简单的在一个Map里面包含其他Map(后者又可以包含更多的Map,以此类推)

  3. List(接口)
    顺序是List最重要的特性;他可以保证元素按照规定的顺序排列。List为Collection添加了大量方法,以便我们在List中插入和删除元素(只推荐对LinkedList这样做)。List也会生成一个ListIterator(列表反复器),利用它可在一个列表里朝两个方向遍历,同时插入和删除位于列表中部的元素(同样地,只建议对LinkedList这样做)

  4. ArrayList
    由一个数组后推得到的List。作为一个常规用途的对象容器使用,用于替换原先的Vector。允许我们快速访问元素, 但在从列表中部插入和删除元素时,速度却稍嫌慢。一般只应该用ListIterator对一个ArrayList进行向前和向后遍历,不要用它删除和插入元素;与LinkedList相比,他的效率要低很多。

  5. LinkedList
    提供优化的顺序访问性能,同时可以高效率地在列表中部进行插入和删除操作。但在进行随机访问时,速度却相当慢,此时应换用ArrayList。也提供了addFirst(), addLast(), getFirst(), getLast(), removeFirst(), 以及removeLat()(未在任何接口或基础类中定义),以便将其作为一个规格,队列以及一个双向队列使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值