有关Java容器的基础知识

Java中容器是Java3中比较方便快捷的容器,在各种程序中运用的比较多,给我们的编程带来了很大的方便。

 
  现将我整理的基本知识列出,供学习参考使用,这些知识全都是在Java编程思想这本书中看到的。有不对之处多多指教。
 
  按次序介绍如下:
 
  Array的长度是固定的且无法动态改变其长度,也就是说定义大小后,此变量的大小不可以再改变了,但它是最有效的一个容器,存取速度相当快。
 
  Array对象用length成员进行计算元素个数,通过[]来取用数据,array对象无法判断元素个数,只能计算其容量。
 
  Array类拥有一组static函数,equals(),fill(),sort(),binary(),
 
  Array复制System.arrayCopy().
 
  compareTo()接受一个对象引数,此引数大于自己时返回负值,相等时返回零,小于时返回正值。
 
 
  Java中的最关键的三个容器接口(list,set,map).
 
  List 是一个interface
 
  List以元素按插次序来放置元素,不会重新排列。
 
  ArrayList以Array实现完成的List,允许快速随机访问。如果只是简单地存取数据,而不对其中的数据进行有序插入使用此容器会很方便且速度很快。LinkList提供最佳循序访问,具有addFirst(),addLast(),getFirst(),getLast(),removeFirst(),removeLast(),如果需要在队列中插入一些数据,可用此容器。由于其list的灵活性,在各种程序中使用的比较多。
 
 
  Set 就是一个Collection 不接受重复元素,它使用自己内部的一个排列机制。
 
  Set拥有和Collection一样的interfaces
 
  HashSet注重查找时间,所有元素必须定义hashCode();对自己中的数据不进行有序排列,按照加入的先后次序进行排列。
 
  TreeSet底层结构为tree的一种有序Set. 内部数据进行有序排列。
 
 
  Map也不接受重复元素,重复与否以键值(key)判断,它拥有自己的内部排列机制。
 
  ArrayList使用数字来选择值,而Map使用另一个对象来取值。
 
  Map用put将Value值加入,用get()传回key对应的value。
 
  使用containsKey()和containsValue()来检查map内是否含有某个key或某个value。

 
  Map 包括两个maps ,HashMap,TreeMap
 
  HashMap会运用对象的hashCode()并利用它来快速找到key,带来巨幅的效率提升。HashMap取代了Java2中的HashTable容器。
 
  TreeMap基于红黑树完成的一个实现品,它的数据按次序排列并惟一拥有subMap(),此函数返回tree中的部分组成。
 
 
   容器的填充
 
  ArrayList以 add()方法进行数据的增加。容器有个Collections Class,含有一些static函数,比如fill(),它将用一个object reference 复制到容器的每个位置上(只能list有用),即把原先的值覆盖掉,此函数用处不大。
 
 
   迭代器Iterator
 
  迭代器是个对象,其职责便是走访以及选择序列中的一连串对象,迭代器是“轻量级”对晚,产生的代价极小。
 
  第一次调用Iterator的next()时,返回序列中的第一个元素。
 
  调用next()取得序列中的下一个元素。
 
  调用hasNext()检查序列是否还有其它元素。
 
  调用remove()移去迭代器最新传回的元素。
 
 
   外引:
 
  C++中的vector容器知道他所持有的对象隶属型别,但不进行边界检查,而Java中的容器都进行了边界检查,一旦越界即报RuntimeException。边界检查会带来额外的效率负担。
 
  Java中的容器可以持有Java任何对象(基本型别除外)。 一旦将对象装入容器,其型别就会丢失,当你使用的时候,必须先进行转型。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值