java中集合类的总结

参考:
http://www.360doc.com/showWeb/0/0/1833598.aspx

http://zzg810314.javaeye.com/blog/83342

http://episode.javaeye.com/blog/113005

Collection
List Set
Map
HashMapHashTable

一、Array Arrays

Java 所有 存储及随机访问一连串对象 的做法,array 是最有效率的一种。

1
效率高,但容量固定且无法动态改变。

array 还有一个缺点是,无法判断其中实际存有多少元素,length 只是告诉我们array 的容量。

2.
Java
中有一个Arrays 类,专门用来操作array

arrays 中拥有一组static 函数,
equals()
:比较两个array 是否相等。array 拥有相同元素个数,且所有对应元素两两相等。
fill()
:将值填入array 中。
sort()
:用来对array 进行排序。
binarySearch()
:在排好序的array 中寻找元素。
System.arraycopy()
array 的复制。

 

二、Collection Map

若撰写程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array 不适用。

1 Collection Map 的区别

容器内每个为之所存储的元素个数不同。
Collection
类型者,每个位置只有一个元素。
Map
类型者,持有 key-value pair ,像个小型数据库。

2 、各自旗下的子类关系

Collection
    -- List : 将以特定次序存储元素。所以取出来的顺序可能和放入顺序不同。
          --ArrayList / LinkedList / Vector
    --
Set : 不能含有重复的元素
          --HashSet / TreeSet
Map
    --
HashMap
    --
HashTable
    --
TreeMap

3 、其他特征

* List SetMap 将持有对象一律视为Object 型别。

* Collection ListSetMap 都是接口,不能实例化。
  
继承自它们的 ArrayList, Vector, HashTable, HashMap 是具象class ,这些才可被实例化。

* vector 容器确切知道它所持有的对象隶属什么型别。vector 不进行边界检查。

三、Collections

Collections 是针对集合类的一个帮助类。 提 供了一系列静态 方法实现对各种集合的搜索、排序、线程完全化等操作。
相当于对Array 进行类似操作的类——Arrays
如,Collections.max(Collection coll); coll 中最大的元素。
    Collections.sort(List list);
list 中元素排序

四、如何选择?

1 、容器类和Array 的区别、择取
   *
容器类仅能持有对象引用(指向对象的指针),而不是将对象信息copy 一份至数列某位置。
   *
一旦将对象置入容器内,便损失了该对象的型别信息。

2
*
在各种Lists 中,最好的做法是以ArrayList 作为缺省选择。当插入、删除频繁时,使用LinkedList()
     Vector
总是比ArrayList 慢,所以要尽量避免使用。
*
在各种Sets 中,HashSet 通常优于HashTree (插入、查找)。只有当需要产生一个经过排序的序列,才用TreeSet
     HashTree
存在的唯一理由:能够维护其内元素的排序状态。
*
在各种Maps
     HashMap
用于快速查找。
*
当元素个数固定,用Array ,因为Array 效率是最高的。

java null "" 的区别

一直都蛮疑惑这个问题,今天找了下资料,结论如下:

null

无效的 ; 无价值的,

其在内存中没有分配地址

""

空字符串,但是也是字符串。

其在内存中已经分配地址

有个说法:

好比做饭 null 说明连锅都没有 "" 则是有锅没米
虽然二者看起来都是没有米 但是意义却不同

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值