dyerac  
dyerac In Java
公告

日历
<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
统计
  • 随笔 - 36
  • 文章 - 10
  • 评论 - 94
  • 引用 - 0

导航

常用链接

留言簿(5)

随笔分类(49)

随笔档案(36)

文章分类(11)

文章档案(10)

相册

dyerac

搜索

  •  

积分与排名

  • 积分 - 78759
  • 排名 - 706

最新随笔

最新评论

阅读排行榜

评论排行榜

 
我决定,还是从基础学起!

1.ArrayList实际上应该是数组实现,所以不方便做大量的删除和添加,但是很有效与get(),set()方法
   LinkedList是基于链表实现,所以不应该用作随机访问,但是add(),remove()方法很适用

2.add(),remove()方法会破坏集合的结构,所以在用两个线程访问时会出现同步问题.但是set()(改变之前访问的值)不会.

3.vector和arraylist都是基于数组实现的,它们的区别在于,vector是同步的,会消耗更多的资源,所以不需要同步时,最好使用arraylist
  同样的例子还有Hashtable(同步)和HashMap

4.集合的某些操作会有boolean的返回值,该值表示是否改变了集合的结构(比如add).由此可以判断操作是否成功

5.HashSet不能存放相同的元素, 而且是无序存放的. TreeSet提供了排序的方法,可以让元素自身实现Comparable接口,或者 为TreeSet制定特殊的排序类Comparator

6. PriorityQueue提供了高效的得到最小元素的方法,这有助于实现任务调度器类似的功能

7.Map的keySet, entrySet, values可以访问和删除键值或者键名,但是不能增加.增加的话必须直接调用Map的方法.同样,Map中相同的元素只能有一个键名

8.WeakHashMap可以把map中不再需要的元素由gc回收

9.LinkedHashSet和LinkedHashMap提供了排序的方法,但是这个排序是可以控制的,accessOrder为true时是按照访问的顺序进行的,为false时是按照你的输入顺序

10.IdientityHashMap通过内存地址计算hascode,因此可以拥有相同的元素,因为它中间的比较是通过"=="而不是equals

11.Collections类提供了一系列操作Collection接口的方法和算法, 比如二分查找, 排序等等(请注意Collections和Collection的区别)

12.视图技术:
    这是集合框架一项出色的技术, 对于现有集合的操作, 比如说选取子集, 由该集合产生特殊集合等等,实际上都没有创建新的集合,而是在原有集合上创建视图,该视图是实现了Collection接口的特殊实现类,用户对这些类的调用实际上还是对被其包裹的原有集合的调用, 视图实际上起到了的代理的作用
   因此,视图的问题在于通过视图你有时无法调用接口的所有方法,比如List.asList(Array a)可以把数组包裹成列表,但实际上,我们的操作还是直接传到了数组之中.因此,对于这样的列表, 所有的更改结构的方法(如add, remove)都不被支持.(代测验)
posted on 2006-07-30 22:34 dyerac in java... 阅读(346) 评论(0)  编辑  收藏 所属分类: JavaSE

只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © dyerac in java... Powered by: 博客园 模板提供:沪江博客