java 集合的感概细节点

数组以及动态的 ArrayList 类。 

数组和数组列表 都有一个重大的缺陷。 这就是从数组的中间位置删除一个元素要付出很大的代价, 其原因是 数组中处于被删除元素之后的所有元素都要向数组的前端移动(见图 9-6 。) 在数组中间的位 置上插入一个元素也是如此。

另外一个大家非常熟悉的数据结构一链表(linked list) 解决了这个问题。尽管数组在 连续的存储位置上存放对象引用, 但链表却将每个对象存放在独立的结点中。每个结点还存 放着序列中下一个结点的引用。

Java 程序设计语言中, 所有链表实际上都是双向链接的

(doubly linked) —即每个结点还存放着指向前驱结点的引用(

即需要更新被删除元素附近的链接

 

在需要动态数组时, 可能会使用 Vector 类。 为什么要用 ArrayList 取代 Vector 呢? 原因很简单: Vector 类的所有方法都是同步的。 可 以由两个线程安全地访问一个 Vector 对象。 但是, 如果由一个线程访问 Vector, 代码要 在同步操作上耗费大量的时间。 这种情况还是很常见的。 而 ArrayList 方法不是同步的, 因此, 建议在不需要同步时使用 ArrayList, 而不要使用 Vector。

 集合类==容器类

 容器类提供l完善的方法保存对象。

特性:  set对于每个值只保存一个对象, map: 允许你将某些对象与其它对象关联起来的

关联数组。

java容器类 都可以自动地调整自己的尺寸。 与数组不同,可以将任意数量的对象放置到容器中。

ArrayList :自动扩充自身尺寸的数组。

如果没有显示的声明继承那个类 ,那么自动继承object 。因为ArrayList 保存的是Objcet 

当ArrayList 的get 取出的只是一个引用。

ArrayList<Apple>     不只是ArrayList  <>  类型参数可以有多个 指定容器实列可衣保存的类型

就可以防止在编译期防止将错误类型的对像放入到容器中

Java 容器类库的用途是 ”保存对象“

collection   一个独立元素的序列 ,概括类序列 的概念--存放一组对象的发方式

 List 必须按照插入的顺序保存元素 ,set不能有重复元素, 

queue 按照排队规则来确定对象产生。

Map , 一组成对的 键值对 对象。

ArrayList   允许你使用 数字来查找值。 某种 数字和与对象关联在一起

映射表 允许我们使用另一个对象来查找某个对象。

Arrays  collections 类中有很多的实用方法。

Arrays.asList  方法接受一个数组或是一个用逗号分隔的元素列表。

并将其转换为一个List对象。

collections.addAll() 方法接受一个Collection 对象。以及一个数组

或是一个用逗好分割列表,将元素添加到Collection中。

ArrayList 和LinkList 都是List类型,输出可以看出,都是按照顺许

保存元素 不同之处不仅于执某些类型的操作时的行性能。

HashSet, TreeSet 和LinkeHashSet 都是Set类型,输出显示Set中哦

任何容器类,都必须有某种可以插入元素并将他们在再次取回。

迭代器 是一个对象们, 他的工作是遍历并选择序列中的对象。

Set 不保存重复的元素。

HashSet 专门对快速查找进行了优化。

TreeSet 将元素存储在红黑树数据结构中。

HashSet  散列函数

LinkedHashList  查询速度的散列 链表 维护元素的插入顺讯。

Map 将对象映射到其他对象的能力是一种解决编程问题的杀手锏。

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值