?????Java??????????????????ü????Collection???????????Java API???????????????

????????Java API?????????????????????Collection??????????????н????£?

                  Collection<--List<--Vector
                  Collection<--List<--ArrayList
                  Collection<--List<--LinkedList
                  Collection<--Set<--HashSet
                  Collection<--Set<--HashSet<--LinkedHashSet
                  Collection<--Set<--SortedSet<--TreeSet

Vector : ????Array??List???????????Array??????????Щ??????????????????????????Array????????????????????Array?????????????????£????????????Array?????????????????Vector??????????????????sychronized”?????????Vector??ArrayList???????

ArrayList???Vector????????????Array??????????????????ArrayList?????????????????????????Vector????Щ??????????е??????????????????????????????????????

LinkedList??LinkedList????????????List???????????Array??????????Array???????????????????Node????????????????????1.???????????data????2.??????????????nextNode???????????LinkedList?????????????????????????Array??List???????????д????????????????????nextNode??????????????????????LinkedList???????

List???

1. ???е?List???????????????????????????????????Key??Value?????????磺[ tom??1??c ]??

2. ???е?List?п??????????????????Vector?п????? [ tom??koo??too??koo ]??

3. ???е?List?п?????null????????[ tom??null??1 ]??

4. ????Array??List??Vector??ArrayList???????????LinkedList???????????????????????

HashSet?????Set?List???????Collection??????????????????????????List???????????Array???????????Set??????HashMap???????????????????Set??List?????????HashSet??洢??????HashMap?е?Key???Set?????洢?????HashSet??add??Object  obj??????????????????????
    public boolean add(Object obj)
    {
        return map.put(obj?? PRESENT) == null;
    }

???????????Set?в???????List????????????????????????HashMap??key?????????????

LinkedHashSet??HashSet?????????????????

TreeSet??SortedSet?????????????HashSet???????TreeSet???????????????SortedMap???????

Set???

1. Set?????????Map??HashMap????

2.  Set?е?????????????????????add(Object obj)??????????????????????????????

??????ü????? ?

????????????????????????????????????????????±????????????????????????????????

 
???????

??????????java.util???С?
??????????????????????????????????????????????????????е????????????ж?????????reference)??
?????????????3???set(??????list(?б????map(???)??

(1)??
????set?????????????????????????????????????????????????У????????????????
????г???????????????????ж???????y??е????????в????????????
????ж?????壬??????????????????TreeSet????????????????е???????????????????????????????????????С?????????SortedSet??????????????????????????????е????????????????????????????????

(2)?б?
?б?????????????????????????洢???????????????????????????β?????????????????????????????
?б?????????з????????????????????????????????С?
????????б?????????????????????о??????????????????????????

(3)???
????????б???????????????????????????????д洢???????????????????????Key?????????????????????????е?洢λ????????????????????????????????????в鵥???????????????????
?????????????????????洢λ?????????????????(hashing)?????????????????????????????(hash code)?????????

??????????????????????????????????????????????????????λ???????????????/??????洢λ?á?????????£???д?????ò?????????Χ??????????????????????????????????????

????????
java.util?й???13?????????????????????????????б??????????????????Щ????????

????
HashSet?? ???HashMap????????????????????????????????????????????????Ч??????????????????HashMap??????????洢????????????????????????.

TreeSet?? ???????????????????????????????ζ??????TreeSet??????????????????????????????TreeSet??????????TreeMap.

?б??
Vector?? ?????????????????????????????????????????????????????±?洢???????????????????????????????????????????????????????Vector?м???????Vector????????????!!?????????????????????????????????

Stsck: ??????Vector???????????????????????????!??????????洢????

LinkedList: ?????????????????????????????????????????????á?

ArrayList: ?????????飬??????????????????????????????????????????Vector?????????


???
HashTable?? ????????????е???????????????Ч??????????????????????hashcode()??????equal()????????????????java?????????У??????????????????????????и??????á?

HashMap?? ?????????????洢??????????????????????????????????????????????

WeakHashMap?? ???????????????????????????????????????????????/??????????????????HashMap?γ?????????е??????/????????????????????????????????ж??????????????????????????

TreeMap?? ?????????????????????????????е??

Set??List????????????Collection?????????????????????????????????Collection??????????á?????ζ???κ??б?????????????????????????????????????????????????????????????????????????б?????????????????б???????????????????????Collection??????????

Vector ????ArrayList?????????????????
????????????????????????????Vector??????????ArrayList???????????????????????????????????????????????????????????????????????????4?????????????

(1)API

(2)???????

(3)??????????

(4)?????

?????????4??????????????

API
????Ken Arnold????????Java Programming Language??(Addison-Wesley?? June 2000)???????????????????Vector??????ArrayList.?????д?API????????????????????????????????????????Щ???????????

?????

Vector??????????????е??Щ?????????Vector?е????????????????ArrayList????????????ArrayList?е?????????????????????????????????е?Ч???????????????????????????????ArrayList???????????????????????????????????????????????????

????????

???????????????ArrayList??Vector???????????(Array)??????????е??????????????????????????????????????????????????????????????????????????????????????Vector?????????????????????????鳤???ArrayList???????50%????????????????????????????????????????????????????????????б??????????????????Vector???Щ???????????????????ü??????????С????????????????????

?????

??ArrayList??Vector?У???????????λ??????????????????????????????β????????????????????????????????????????????O(1)???????????????????????λ????????????????????????????????????O(n-i)??????n??????????????????i???????????????????????λ?á?????????????????????????????????????е?i???i?????????????????????λ???????????????ζ???????
????ζ??????????????λ???????????????????????????????????Vector??ArrayList??????????????????????????????????????????
???磬LinkList???????????????????????κ?λ???????????????????????—O(1)??????????????????????????????O(i)??????i????????λ??.???ArrayList???????????????????????????????洴??iterator??????????LinkList???????????????????????????????????????????????????

?????Practical Java???????Peter Haggar?????????????????饗Array????????Vector??ArrayList??????????????Ч??????????????????????????(Array)??????????????????????ú??????????·???????????