




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、-. z.Java collectionsA collection allows a group of objects to be treated as a single unit. Arbitrary objects can be stored, retrieved and manipulated as elements of these collections. Collections Framework presents a set of standard utility classes to manage such collections.It contains core interf
2、aces which allow collections to be manipulated independent of their implementations. These interfaces define the mon functionality e*hibited by collections and facilitate data e*change between collections.A small set of implementations that are concrete implementations of the core interfaces, provid
3、ing data structures that a program can use.An assortment of algorithms to perform various operations such as, sorting and searching.Collections framework is interface based, collections are implemented according to their interface type, rather than by implementation types. By using the interfaces wh
4、enever collections of objects need to be handled, interoperability and interchangeability are achieved.By convention each of the collection implementation classes provide a constructor to create a collection based on the elements in the Collection object passed as argument. By the same token, Map im
5、plementations provide a constructor that accepts a Map argument. This allows the implementation of a collection (Collection/Map) to be changed. But Collections and Maps are not interchangeable.Interfaces and their implementations in Java 1.2Collection|_ Set (no dupes, null allowed based on implement
6、ation) HashSet|_ SortedSet (Ordered Set) TreeSet|_ List (ordered collection, dupes OK) Vector, ArrayList, LinkedListMap (key-value pairs, null allowed based on implementation) HashTable, HashMap | |_ SortedMap (Ordered Map) TreeMapInterfaceDescriptionCollectionA basic interface that defines the oper
7、ations that all the classes that maintain collections of objects typically implement.SetE*tends Collection, sets that maintain unique elements. Set interface is defined in terms of the equals operationSortedSetE*tends Set, maintain the elements in a sorted orderListE*tends Collection, maintain eleme
8、nts in a sequential order, duplicates allowed.MapA basic interface that defines operations that classes that represent mappings of keys to values typically implementSortedMapE*tends Map for maps that maintain their mappings in key order.Classes that implement the interfaces use different storage mec
9、hanisms.ArraysInde*ed access is faster. Makes insertion, deletion and growing the store more difficult.Linked ListSupports insertion, deletion and growing the store. But inde*ed access is slower.TreeSupports insertion, deletion and growing the store. Inde*ed access is slower. But searching is faster
10、.HashingSupports insertion, deletion and growing the store. Inde*ed access is slower. But searching is faster.However, requires the use of unique keys for storing data elements.Data Structures InterfacesSetSortedSetListMapSortedMapHash TableHashSetHashMapHashTable Resizable ArrayArrayListVectorBalan
11、ced TreeTreeSetTreeMapLinked ListLinkedListSome of the operations in the collection interfaces are optional, meaning that the implementing class may choose not to provide a proper implementation of such an operation. In such a case, an UnsupportedOperationE*ception is thrown when that operation is i
12、nvoked.InterfaceMethodsDescriptionCollectionBasic Operationsint size();boolean isEmpty();boolean contains(Object element);boolean add(Object element);boolean remove(Object element);Used to query a collection about its contents, and add/remove elements. The add() and remove() methods return true if t
13、he collection was modified as a result of the operation. The contains() method checks for membership.Bulk Operationsboolean containsAll(Collection c);boolean addAll(Collection c);boolean removeAll(Collection c);boolean retainAll(Collection c);void clear();Perform on a collection as a single unit.Ope
14、rations are equivalent of set logic on arbitrary collections (not just sets). The addAll(), removeAll(), clear() and retainAll() methods are destructive. Array OperationsObject toArray();Object toArray(Object a);These methods bined with Arrays.asList() method provide the bridge between arrays and co
15、llections. IteratorsIterator iterator();Iterator is an interface which has these methods.boolean hasNe*t();Object ne*t();void remove();Returns an iterator, to iterate the collection. The remove() method is the only remended way to remove elements from a collection during the iteration.SetNo new meth
16、ods defined.The add() method returns false, if the element is already in the Set. No e*ceptions are thrown.ListElement Access by Inde*Object get(int inde*);Object set(int inde*, Object element);void add(int inde*, Object element);Object remove(int inde*);boolean addAll(int inde*, Collection c);First
17、 inde* is 0, last inde* is size() 1. An illegal inde* throws Inde*OutOfBoundsE*ception.Element Searchint inde*Of(Object o);int lastInde*Of(Object o);If the element is not found, return 1.List IteratorsListIterator listIterator();ListIterator listIterator(int inde*);ListIterator e*tends Iterator. It
18、allows iteration in both directions.ListIterators additional methods:boolean hasPrevious();boolean previous();int ne*tInde*();int prviousInde*();void set(Object o);void add(Object o);Open Range ViewList subList(int fromInde*, int toInde*);Returns a range of the list from fromInde* (inclusive) to toI
19、nde* (e*clusive). Changes to view are reflected in the list and vice versa.MapBasic OperationsObject put(Object key, Object value);Object get(Object key);Object remove(Object key);boolean containsKey(Object key);boolean containsValue(Object value);int size();boolean isEmpty();The put method replaces
20、 the old value, if the map previously contained a mapping for that key. The get method returns null, if the specified key couldnt be found in the map.Bulk Operationsvoid putAll(Map t);void clear();putAll() adds all the elements from the specified map.clear() removes all the elements from the map.Col
21、lection ViewsSet keySet();Collection values();Set entrySet();Note that the values () method, returns a Collection, not a set. Reason is, multiple unique keys can map to the same value.Provide different views on a Map. Changes to views are reflected in the map and vice versa.Each pair is represented
22、by an Object implementing Map.Entry interface.Object getKey();Object getValue();Object setValue(Object value);SortedSetRange View OperationsSortedSet headSet(Object toElement);SortedSet tailSet(Object fromElement);SortedSet subSet(Object fromElement, Object toElement);fromElement is inclusive, toEle
23、ment is e*clusive. The views present the elements sorted in the same order as the underlying sorted set.Min-Ma* PointsObject first();Object last();Return the first (lowest) and last (highest) elements.parator Accessparator parator();Returns the partor associated with this SortedSet, or null if it us
24、es natural ordering.SortedMapRange View OperationsSortedMap headMap(Object toKey);SortedSet tailMap(Object fromKey);SortedSet subMap(Object fromKey, Object toKey);SortedMap is sorted with keys.fromKey is inclusive, toKey is e*clusive. The views present the elements sorted in the same order as the un
25、derlying sorted map.Min-Ma* PointsObject firstKey();Object lastKey();Return the first (lowest) and last (highest) keys.parator Accessparator parator();Returns the partor associated with this SortedMap, or null if it uses natural ordering.Sorting in SortedSets and SortedMaps can be implemented in two
26、 ways.Objects can specify their natural order by implementing parable interface. Many if the standard classes in Java API, such as wrapper classes, String, Date and File implement this interface. This interface defines a single method:int pareTo(Object o) returns negative, zero, positive if the curr
27、ent object is less than, equal to or greater than the specified object.In this case a natural parator queries objects implementing parable about their natural order. Objects implementing this interface can be used:As elements in a sorted set.As keys in sorted map.In lists which can be sorted automat
28、ically by the Collections.sort() method.Objects can be sorted by specific parators, which implement parator interface. This interface defines the following method:int pare(Object o1, Object o2) returns negative, zero, positive if the first object is less than, equal to or greater than the second obj
29、ect. It is remended that its implementation doesnt contradict the semantics of the equals() method. Specific parators can be specified in the constructors of SortedSets and SortedMaps.All classes provide a constructor to create an empty collection (corresponding to the class). HashSet, HashMap, Hash
30、Table can also be specified with an initial capacity as well as a load factor (the ratio of number of elements stored to its current capacity). Most of the time, default values provide acceptable performance.A Vector, like an array, contains items that can be accessed using an integer inde*. However
31、, the size of a Vector can grow and shrink as needed to acmodate adding and removing items after the Vector has been created. Vector (5,10) means initial capacity 5, additional allocation (capacity increment) by 10.Stack e*tends Vector and implements a LIFO stack. With the usual push() and pop() met
32、hods, there is a peek() method to look at the object at the top of the stack without removing it from the stack.Dictionary is an obsolete class. HashTable e*tends dictionary. Elements are stored as key-value pairs.Vector and HashTable are the only classes that are thread-safe.ArrayList (does what Ve
33、ctor does), HashMap(does what HashTable does), LinkedList and TreeMap are new classes in Java 1.2In Java 1.2, Iterator duplicates the functionality of Enumeration. New implementations should consider Iterator.Collections is a class, Collection is an interface.Collections class consists e*clusively o
34、f static methods that operate on or return collections. Sorting and Searching algorithms in the Collections class.static int binarySearch(List list, Object key)static void fill(List list, Object o)static void shuffle(List list, Object o)static void sort(List list)Factory methods to provide thread-sa
35、fety and data immutability. These methods return synchronized (thread-safe) / immutable collections from the specified collections.List safeList = Collections.synchronizedList(new LinkedList();SortedMap fi*edMap = Collections.unmodifiableSortedMap(new SortedMap();Constants to denote immutable empty
36、collections in the Collections class: EMPTY_SET, EMPTY_LIST and EMPTY_MAP.Collections class also has the following methods:MethodDescriptionpublic static Set singleton(Object o)Returns an immutable set containing only the specified objectpublic static List singletonList(Object o)Returns an immutable
37、 list containing only the specified objectpublic static Map singletonMap(Object key, Object value)Returns an immutable map containing only the specified key, value pair.public static List nCopies (int n, Object o)Returns an immutable list consisting of n copies of the specified object. The newly all
38、ocated data object is tiny (it contains a single reference to the data object). This method is useful in bination with the List.addAll method to grow lists.The class Arrays, provides useful algorithms that operate on arrays. It also provides the static asList() method, which can be used to create Li
39、st views of arrays. Changes to the List view affects the array and vice versa. The List size is the array size and cannot be modified. The asList() method in the Arrays class and the toArray() method in the Collection interface provide the bridge between arrays and collections.Set mySet = new HashSe
40、t(Arrays.asList(myArray);String strArray = (String) mySet.toArray();All concrete implementations of the interfaces in java.util package are inherited from abstract implementations of the interfaces. For e*ample, HashSet e*tends AbstractSet, which e*tends AbstractCollection. LinkedList e*tends Abstra
41、ctList, which e*tends AbstractCollection. These abstract implementations already provide most of the heavy machinery by implementing relevant interfaces, so that customized implementations of collections can be easily implemented using them.BitSet class implements a vector of bits that grows as need
42、ed. Each ponent of the bit set has a boolean value. The bits of a BitSet are inde*ed by nonnegative integers. Individual inde*ed bits can be e*amined, set, or cleared. One BitSet may be used to modify the contents of another BitSet through logical AND, logical inclusive OR, and logical e*clusive OR
43、operations. By default, all bits in the set initially have the value false. A BitSet has a size of 64, when created without specifying any size.ConcurrentModificationE*ception e*ception (e*tends RuntimeE*ception) may be thrown by methods that have detected concurrent modification of a backing object
44、 when such modification is not permissible. For e*ample, it is not permssible for one thread to modify a Collection while another thread is iterating over it. In general, the results of the iteration are undefined under these circumstances. Some Iterator implementations (including those of all the collection implementations provided by the JDK) may choose to throw this e*ception if this behavior is detected. Iterators that do this are known as fail-fast iterators, as they fail quickly and cleanly, rather that risking arbitrary, non-determini
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海水養(yǎng)殖品種選育與改良考核試卷
- 旅游客運企業(yè)安全生產(chǎn)標準化建設考核試卷
- 創(chuàng)業(yè)投資政策制定與市場發(fā)展效應關系探索考核試卷
- 焙烤食品制造中的熱能管理與節(jié)能考核試卷
- 衛(wèi)生間洗滌用品成分與效果考核試卷
- 智能穿戴設備在水質(zhì)監(jiān)測中的作用考核試卷
- 架線工程概預算編制與審核要點考核試卷
- 買二手房房屋買賣合同標準文本
- 企業(yè)機器維護合同標準文本
- 上海延長勞動合同標準文本
- T-CSCP 0019-2024 電網(wǎng)金屬設備防腐蝕運維診斷策略技術導則
- 2025中考道德與法治核心知識點+易錯易混改錯
- 2025年日語n2考前試題及答案
- 1889-13-15-食堂承包協(xié)議工地食堂承包協(xié)議書
- T-NYA 007-2023 多味草本足浴包技術規(guī)范
- 課題開題報告:教育家精神在當代教育實踐中的傳承與創(chuàng)新研究
- 臨床基于高級健康評估的高血壓Ⅲ級合并腦梗死患者康復個案護理
- 2024年全國統(tǒng)一高考英語試卷(新課標Ⅰ卷)含答案
- 2024年認證行業(yè)法律法規(guī)及認證基礎知識 CCAA年度確認 試題與答案
- 1混凝土拌合站臨建方案
- 桐鄉(xiāng)市烏鎮(zhèn)歷史文化保護區(qū)保護規(guī)劃
評論
0/150
提交評論