java集合ppt_Java集合类讲解.ppt

Java集合类讲解

Java集合类 主要内容 集合类概述 Collection接口 List接口-Vector类、ArrayList类、LinkedList类 Set接口-HashSet类 Map接口-HashMap类、TreeMap类 Iterator(迭代器) 集合类概述 为容纳一组对象,最适宜的选择应当是数组。而且假如容纳的是一系列基本数据类型,更是必须采用数组。当我们编写程序时,通常并不能确切地知道最终需要多少个对象。有些时候甚至想用更复杂的方式来保存对象。为解决这个问题,Java 提供了 集合类库。 使用Java 集合的“缺点”是在将对象置入一个集合时丢失了类型信息。之所以会发生这种情况,是由于当初编写集合时,那个集合的程序员根本不知道用户到底想把什么类型置入集合。若指示某个集合只允许特定的类型,会妨碍它成为一个“常规用途”的工具,为用户带来麻烦。为解决这个问题,集合实际容纳的是类型为Object 的一些对象的句柄。 集合类概述 新的集合库考虑到了“容纳自己对象”的问题,并将其分割成两个明确的概念: 集合(Collection):一组单独的元素,通常应用了某种规则。在这里,一个List(列表)必须按特定的顺序容纳元素,而一个Set(集)不可包含任何重复的元素。 映射(Map):一系列“键-值”对。从表面看,这似乎应该成为一个“键-值”对的“集合”,但假若试图按那种方式实现它,就会发现实现过程相当笨拙。另一方面,可以方便地查看Map 的某个部分。只需创建一个集合,然后用它表示那一部分即可。这样一来,Map 就可以返回自己键的一个Set、一个包含自己值的List 或者包含自己“键-值”对的一个List。和数组相似,Map 可方便扩充到多个“维”,毋需涉及任何新概念。只需简单地在一个Map 里包含其他Map(后者又可以包含更多的Map,以此类推)。 Collection接口 Collection是个java.util下的接口,它提供了对集合对象进行基本操作的通用接口方法。它有三个基本的方法: boolean add(Object obj): 用于将一个对象放入到集合中,当原有Collection对象改变后,它返回true; boolean addAll(Collection col): 将另一个Collection对象中的所有元素插入该Collection对象中,当目标Collection对象改变后,它将返回true; Iterator iterator(): 它将返回一个Iterator(遍历器)接口对象。 List接口 顺序是List 最重要的特性;它可保证元素按照规定的顺序排列。List 为Collection 添加了大量方法,以便我们在List 中部插入和删除元素(只推荐对LinkedList 这样做)。List 也会生成一个ListIterator(列表反复器),利用它可在一个列表里朝两个方向遍历,同时插入和删除位于列表中部的元素(同样地,只建议对LinkedList 这样做)。 List的具体实现类常用的有ArrayList和LinkedList。 —ArrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快。 —LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。 List接口->Vector类 Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的 Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常。 List接口->ArrayList类 ArrayList是List接口的大小可变数组的实现。允许包括null在内的所有元素。 每个ArrayList实例都有一个容量。该容量是指用来存储列表元素的数组的大小,它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量也自动增长。 常用方法(详见API) List接口->LinkedList类 LinkedList是List接口的链接列表实现。 在一般情况下,LinkedList和ArrayList在操作上非常相似,它们仅仅有一点点区别: ArrayList在尾部插入数据的效率比LinkedList高,LinkedList更适用于随机地在任意位置添加删除数据。 LinkedList提供了对尾部和头

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值