Just a little smile ^ ^

yoyo_zeng

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数组

type[];

可返回一个数组

java 提供了四种类型的“集合类”:Vector(矢量)、BitSet(位集)、Stack(堆栈)以及 Hashtable(散列表) 

stack 实现了一个 LIFO(先入先出)序列,而 Hashtable 是一种 “关联数组”,允许我们将任何对象关联起来。除此以外,所有Java 集合类都能自动改变自身的大小 

集合实际容纳的是类型 为Object 的一些对象的句柄。这种类型当然代表Java 中的所有对象,因为它是所有类的根。当然,也要注 意这并不包括基本数据类型(

利用象 Integer、Double 之类的“封装器”类 )

 

Vector

Vector中的对象为object,所以你可以放任何对象进去,即使对象类型不同。所以为了防止放入错误类型,可以生成特定vector(has a vector)

class Gopher {
private int gopherNumber; Gopher(int i) {
gopherNumber = i; }
void print(String msg) {
if(msg != null) System.out.println(msg); System.out.println(
"Gopher number " + gopherNumber); }
}
class GopherTrap {
static void caughtYa(Gopher g) {
g.print("Caught one!"); }
}
class GopherVector {
216
private Vector v = new Vector(); public void addElement(Gopher m) {
v.addElement(m); }
public Gopher elementAt(int index) { return (Gopher)v.elementAt(index);
}
public int size() { return v.size(); } public static void main(String[] args) {
GopherVector gophers = new GopherVector(); for(int i = 0; i < 3; i++)
gophers.addElement(new Gopher(i)); for(int i = 0; i < gophers.size(); i++)
GopherTrap.caughtYa(gophers.elementAt(i)); }
} ///:~

java中的interator:

Enumeration。除下面这些外,不可再用它 做其他任何事情:
(1) 用一个名为 elements()的方法要求集合为我们提供一个 Enumeration。我们首次调用它的 nextElement() 时,这个Enumeration会返回序列中的第一个元素。

(2) 用nextElement()获得下一个对象。
(3) 用hasMoreElements()检查序列中是否还有更多的对象。 

 

BitSet

实际是由“二进制位”构成的一个 Vector ,最小长度是一个长整数(Long)的长度:64 位 

 

Stack

Stack stk = new Stack();

push(), pop()

Vector 操作亦可针对 Stack 对象进行。这可能是由继承的特质决定的——Stack“属于”一种 Vector。因 此,能对Vector进行的操作亦可针对Stack进行,例如elementAt()方法。 

 

Hashtable 

散列码可以获取对象中的信息,然后将其转换成那个对象“相对唯一”的整数(int)。所有对象都有 一个散列码,而hashCode()是根类Object的一个方法。Hashtable获取对象的hashCode(),然后用它快速 查找键。这样可使性能得到大幅度提升。

Hashtable ht = new Hashtable(); 

containsKey();get();put()

 

 

新集合 

模仿c++ stl

(1) 集合(Collection):一组单独的元素,通常应用了某种规则。在这里,一个List(列表)必须按特定 的顺序容纳元素,而一个 Set(集)不可包含任何重复的元素。
(2) 映射(Map):一系列“键-值”对。Map 就可以返回自己键的一个Set、一个包含自己值的List 或者包含自己“键 -值”对的一个List。

和数组相似,Map 可方便扩充到多个“维”,需简单地在一 个Map里包含其他Map(后者又可以包含更多的Map,以此类推)。 

虚线框代表“接口”,点线框代表“抽象”类,而实线框代表普通(实际)类。点线箭头表示一个特定的类 准备实现一个接口(在抽象类的情况下,则是“部分”实现一个接口)。

双线箭头表示一个类可生成箭头指 向的那个类的对象 

List x = new LinkedList(); 

List x = new ArrayList();

Collection c = new ArrayList(); 

使用Collections

下面这张表格总结了用一个集合能做的所有事情(亦可对Set和List做同样的事情,尽管List还提供了一 些额外的功能)。Map 不是从 Collection 继承的,所以要单独对

page236image10984 page236image11568 page236image12152 page236image12576

Boolean add(Object)

page236image14448 page236image15032

*Ensures that the Collection contains the argument. Returns false i it doesn’t add the argument.

page236image17104 page236image17688 page236image18112 page236image18696 page236image19280 page236image19704

Boolean addAll(Collection)

page236image21688 page236image22432

*Adds all the elements in the argument. Returns true if any element were added.

page236image24464 page236image25048 page236image25472 page236image26056 page236image26640 page236image27064

void clear( )

page236image28984 page236image29728

*Removes all the elements in the Collection.

page236image31376 page236image31960 page236image32384 page236image32968 page236image33552 page236image33976

Boolean contains(Object)

page236image35856 page236image36600

True if the Collection contains the argument.

page236image38296 page236image38880 page236image39304 page236image39888 page236image40472 page236image40896

Boolean

page236image42408 page236image42992 page236image43416 page236image43840
page236image44784 page236image45528

True if the Collection contains all the elements in the argument.

page236image47280 page236image47864
page237image1096 page237image1680 page237image2104

containsAll(Collection)

page237image3616 page237image4200 page237image4624 page237image5208 page237image5792 page237image6216
page237image7144 page237image8048 page237image8792

Boolean isEmpty( )

page237image10600 page237image11184 page237image11608 page237image12192 page237image12776 page237image13200

True if the Collection has no elements.

page237image14960 page237image15704

Iterator iterator( )

Returns an Iterator that you can use to move through the elements i the Collection.

page237image19216 page237image19800 page237image20224 page237image20808 page237image21392 page237image21816

Boolean remove(Object)

page237image23696 page237image24440

*If the argument is in the Collection, one instance of that elemen is removed. Returns true if a removal occurred.

page237image26784 page237image27368 page237image27792 page237image28376 page237image28960 page237image29384

Boolean removeAll(Collection)

page237image31040 page237image31624 page237image32048 page237image32632 page237image33216 page237image33640
page237image34432 page237image35176

*Removes all the elements that are contained in the argument. Returns true if any removals occurred.

page237image37232 page237image37976

Boolean retainAll(Collection)

*Retains only elements that are contained in the argument (an

“intersection” from set theory). Returns true if any changes occurred.

page237image41968 page237image42552 page237image42976 page237image43560 page237image44144 page237image44568

int size( )

page237image46488 page237image47232

Returns the number of elements in the Collection.

page237image48992 page237image49576 page237image50000 page237image50584 page237image51168 page237image51592

Object[] toArray( )

page237image53184 page237image53768 page237image54192 page237image54776 page237image55360 page237image55784
page237image56576 page237image57320

Returns an array containing all the elements in the Collection.

page237image59032 page237image59776

Object[] toArray(Object[] a)

page237image61688 page237image62272 page237image62696 page237image63280 page237image63864 page237image64288

Returns an array containing all the elements in the Collection, whose type is that of the arraya rather than plainObject (you must cast the array to the right type).

page237image67136 page237image67880
page237image69128 page237image69712 page237image70136 page237image70560

*This is an “optional” method, which means it might not be implemented by a particular Collection. If not, that method throw anUnsupportedOperationException.Exceptionswillbecoveredin Chapter 9.

page237image73464 page237image74048

 

List(接口) 顺序是 List 最重要的特性;它可保证元素按照规定的顺序排列。List 为 Collection 添加了 大量方法,以便我们在 List 中部插入和删除元素(只推荐对LinkedList 这样做)。

List 也会生成一个 ListIterator(列表反复器),利用它可在一个列表里朝两个方向遍历,同时插入和删除位于列表中部的元 素(同样地,只建议对 LinkedList 这样做 )

ArrayList用于替换原先的Vector。快速访问元素,但在从列表中部插入和删除元素时,速度却嫌稍慢。

一般只应该用 ListIterator 对一 个 ArrayList 进行向前和向后遍历,不要用它删除和插入元素;

LinkedList :可以高效率地在列表中部进行插入和删除操作。进行随机访 问时,速度却相当慢。

也提供了 addFirst(),addLast(),getFirst(), getLast(),removeFirst() 以及 removeLast()(未在任何接口或基础类中定义),以便将其作为一个规格、 队列以及一个双向队列使用 

 

Set(接口) 添加到Set的每个元素都必须是独一无二的。添加到Set里 的对象必须定义equals(),从而建立对象的唯一性。Set拥有与Collection完全相同的接口。

HashSet* 用于除非常小的以外的所有Set。对象也必须定义 hashCode()

ArraySet 由一个数组后推得到的Set。面向非常小的Set设计,特别是那些需要频繁创建和删除的。

TreeSet 由一个“红黑树”后推得到的顺序 Set。这样一来,我们就可以从一个Set 里提到一个 顺序集合 

 

Map(接口) 维持“键-值”对应关系(对),以便通过一个键查找相应的值
HashMap* 基于一个散列表实现(用它代替Hashtable)。针对“键-值”对的插入和检索,这种形式具有 最稳定的性能。可通过构建器对这一性能进行调整,以便设置散列表的“能力”和“装载因子”
ArrayMap 由一个ArrayList后推得到的Map。对反复的顺序提供了精确的控制。面向非常小的Map设计,特 别是那些需要经常创建和删除的。对于非常小的 Map,创建和反复所付出的代价要比 HashMap 低得多。但在 Map 变大以后,性能也会相应地大幅度降低
TreeMap 在一个“红-黑”树的基础上实现。查看键或者“键-值”对时,它们会按固定的顺序排列(取决 于 Comparable 或 Comparator,稍后即会讲到)。TreeMap 最大的好处就是我们得到的是已排好序的结果。 TreeMap是含有subMap()方法的唯一一种Map,利用它可以返回树的一部分 

 

page250image3504

Type

page250image5064 page250image5384 page250image5544 page250image5968 page250image6552 page250image6976

Get

Iteration

page250image9576 page250image9896 page250image10056 page250image10640 page250image11064

Insert

page250image12736 page250image13320

Remove

page250image14680 page250image15424

ArrayList

page250image17000 page250image17424 page250image18008 page250image18432 page250image18856 page250image19280 page250image19864 page250image20288

110

490

page250image22896 page250image23480 page250image23904 page250image24328 page250image24912 page250image25336

3790

page250image27016 page250image27760

8730

page250image29152 page250image29896

LinkedList

page250image31248 page250image31832
page250image32704 page250image33128 page250image33712 page250image34136 page250image34560 page250image34984 page250image35568 page250image35992

1980

page250image37504 page250image37928 page250image38512 page250image38936 page250image39360 page250image39680

220

page250image41328 page250image41912 page250image42336 page250image42760 page250image43344 page250image43768

110

page250image45120 page250image45704 page250image46128 page250image46552 page250image46872
page250image47392 page250image48136

110

page250image49488

Type

page251image12408 page251image12992 page251image13416 page251image14000 page251image14584 page251image15008

Test size

page251image16800 page251image17224 page251image17808 page251image18232

Add

page251image19744 page251image20168 page251image20752 page251image21176 page251image21600 page251image22024 page251image22608 page251image23032
page251image23816 page251image24240

Contains

page251image25592 page251image26016 page251image26600 page251image27024
page251image27792

Iteration

page251image29144 page251image29888
page251image31160 page251image31744 page251image32168 page251image32752 page251image33336 page251image33760

10

22.0

page251image36392 page251image36816 page251image37400 page251image37824 page251image38248 page251image38672 page251image39256 page251image39680

11.0

page251image41208 page251image41632 page251image42216 page251image42640

16.0

page251image44160 page251image44904

TreeSet

100

22.5

13.2

12.1

page251image50384 page251image50968 page251image51392 page251image51976 page251image52560 page251image52984 page251image54048 page251image54632 page251image55056

1000

page251image56808 page251image57232 page251image57816 page251image58240 page251image58664 page251image59088 page251image59672 page251image60096

31.1

page251image61608 page251image62032 page251image62616 page251image63040
page251image63824 page251image64248 page251image64832 page251image65256

18.7

page251image66608 page251image67032
page251image67800 page251image68544

11.8

page251image69896
page251image71336 page251image71920 page251image72344 page251image72928 page251image73512 page251image73936

10

5.0

page251image76568 page251image76992 page251image77576 page251image78000 page251image78424 page251image78848 page251image79432 page251image79856

6.0

page251image81384 page251image81808 page251image82392 page251image82816

27.0

page251image84504 page251image85248

HashSet

100

6.6

6.6

10.9

page251image90752 page251image91336 page251image91760 page251image92344 page251image92928 page251image93352 page251image94416 page251image95000 page251image95424 page251image95848 page251image96432

1000

page251image98112 page251image98536 page251image99120 page251image99544 page251image99968 page251image100392 page251image100976 page251image101400

7.4

page251image102912 page251image103336 page251image103920 page251image104344 page251image104768 page251image105088
page251image105624 page251image106048 page251image106632 page251image107056

6.6

page251image108408 page251image108832 page251image109416
page251image109936 page251image110680

9.5

Type

page253image10312 page253image10632 page253image11056

Test size

page253image12720 page253image13040 page253image13464

Put

page253image15024 page253image15344 page253image15504 page253image15928 page253image16512 page253image16936

Get

page253image18768 page253image19352

Iteration

page253image20704 page253image21448 page253image22528 page253image22952 page253image23536 page253image23960

10

page253image25488 page253image25912 page253image26496 page253image26920

11.0

page253image28496 page253image28920 page253image29504 page253image29928 page253image30352 page253image30776 page253image31360 page253image31784

5.0

page253image33624 page253image34368

44.0

page253image35768 page253image36512

Hashtable

page253image37864 page253image38608
page253image39416 page253image39840 page253image40424 page253image40848

100

page253image42200 page253image42624 page253image43208 page253image43632
page253image44440 page253image44864 page253image45448 page253image45872

7.7

page253image47224 page253image47648 page253image48232 page253image48656
page253image49544 page253image49968 page253image50552 page253image50976 page253image51400 page253image51824 page253image52408 page253image52832

7.7

page253image54344 page253image54768 page253image55352 page253image55776 page253image56200 page253image56624 page253image57208 page253image57632
page253image58424 page253image59168

16.5

page253image60520 page253image61264
 

1000

8.0

8.0

14.4

page253image66208 page253image66952 page253image68032 page253image68456 page253image69040 page253image69464

10

page253image70992 page253image71416 page253image72000 page253image72424

16.0

page253image74000 page253image74424 page253image75008 page253image75432 page253image75856 page253image76280 page253image76864 page253image77288

11.0

page253image79128 page253image79872

22.0

page253image81232 page253image81976

TreeMap

page253image83504 page253image83928 page253image84512 page253image84936

100

page253image86464 page253image86888 page253image87472 page253image87896

25.8

page253image89472 page253image89896 page253image90480 page253image90904 page253image91328 page253image91752 page253image92336 page253image92760

15.4

page253image94600 page253image95184

13.2

page253image96736 page253image97480 page253image98384 page253image99128 page253image99936 page253image100360 page253image100944 page253image101368

1000

page253image102720 page253image103144 page253image103728 page253image104152
page253image104960 page253image105384 page253image105968 page253image106392

33.8

page253image107744 page253image108168 page253image108752 page253image109176
page253image110064 page253image110488 page253image111072 page253image111496 page253image111920 page253image112344 page253image112928 page253image113352

20.9

page253image114864 page253image115288 page253image115872 page253image116296 page253image116720 page253image117144 page253image117728 page253image118152
page253image118944 page253image119688

13.6

page253image121040 page253image121784
 

10

11.0

6.0

33.0

page253image126736 page253image127480

HashMap

page253image129008 page253image129432 page253image130016 page253image130440

100

page253image131968 page253image132392 page253image132976 page253image133400

8.2

page253image134976 page253image135400 page253image135984 page253image136408 page253image136832 page253image137256 page253image137840 page253image138264

7.7

page253image140104 page253image140848

13.7

page253image142232 page253image142976 page253image143880 page253image144464 page253image145264 page253image145688 page253image146272 page253image146696

1000

page253image148048 page253image148472 page253image149056
page253image149592 page253image150016 page253image150600 page253image151024

8.0

page253image152376 page253image152800 page253image153384
page253image153992 page253image154416 page253image155000 page253image155424 page253image155848 page253image156272 page253image156856 page253image157280

7.8

page253image158792 page253image159216 page253image159800 page253image160224 page253image160648 page253image160968
page253image161488 page253image162232

11.9

 

Collections 类中含有其他大量有用的实用工具:

page260image8184 page260image8768 page260image8928 page260image9512 page260image9936

enumeration(Collection)

page260image11448 page260image12032 page260image12456 page260image13040 page260image13624 page260image14048
page260image14832 page260image15416

Produces an old-style Enumeration for the argument.

page260image17008 page260image17752

max(Collection) min(Collection)

page260image19624 page260image20208 page260image20632 page260image21216 page260image21800 page260image22224

Produces the maximum or minimum element in the argument using th natural comparison method of the objects in the Collection.

page260image24608 page260image25352

max(Collection, Comparator) min(Collection, Comparator)

Produces the maximum or minimum element in theCollection using the Comparator.

page260image29128 page260image29712 page260image30136 page260image30720 page260image31304 page260image31728

nCopies(int n, Object o)

page260image33360 page260image33944 page260image34368 page260image34952 page260image35536 page260image35960
page260image36752 page260image37496

Returns an immutable L i s t of size n whose handles all point too.

page260image39408 page260image40152

subList(List, int min, int max)

page260image42128 page260image42712 page260image43136 page260image43560 page260image44144

Returns a new List backed by the specified argumentList that is a window into that argument with indexes starting atmin and stopping just before m a x .

 

posted on 2012-11-15 23:40  yoyo_zeng  阅读(356)  评论(0编辑  收藏  举报