Java数据结构及集合类.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 数据结构 集合
- 资源描述:
-
. - Java collections · A 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. 1. It contains ‘core interfaces’ which allow collections to be manipulated independent of their implementations. These interfaces define the mon functionality exhibited by collections and facilitate data exchange between collections. 2. A small set of implementations that are concrete implementations of the core interfaces, providing data structures that a program can use. 3. 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 whenever 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 implementations 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.2 Collection | |__ Set (no dupes, null allowed based on implementation) àHashSet | | | |__ SortedSet (Ordered Set) àTreeSet | |__ List (ordered collection, dupes OK) àVector, ArrayList, LinkedList Map (key-value pairs, null allowed based on implementation) àHashTable, HashMap | |__ SortedMap (Ordered Map) àTreeMap Interface Description Collection A basic interface that defines the operations that all the classes that maintain collections of objects typically implement. Set Extends Collection, sets that maintain unique elements. Set interface is defined in terms of the equals operation SortedSet Extends Set, maintain the elements in a sorted order List Extends Collection, maintain elements in a sequential order, duplicates allowed. Map A basic interface that defines operations that classes that represent mappings of keys to values typically implement SortedMap Extends Map for maps that maintain their mappings in key order. · Classes that implement the interfaces use different storage mechanisms. 1. Arrays Indexed access is faster. Makes insertion, deletion and growing the store more difficult. 2. Linked List Supports insertion, deletion and growing the store. But indexed access is slower. 3. Tree Supports insertion, deletion and growing the store. Indexed access is slower. But searching is faster. 4. Hashing Supports insertion, deletion and growing the store. Indexed access is slower. But searching is faster. However, requires the use of unique keys for storing data elements. Data Structures Interfaces Set SortedSet List Map SortedMap Hash Table HashSet HashMap HashTable Resizable Array ArrayList Vector Balanced Tree TreeSet TreeMap Linked List LinkedList Some 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 UnsupportedOperationException is thrown when that operation is invoked. Interface Methods Description Collection Basic Operations int 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 the collection was modified as a result of the operation. The contains() method checks for membership. Bulk Operations boolean 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. Operations are equivalent of set logic on arbitrary collections (not just sets). The addAll(), removeAll(), clear() and retainAll() methods are destructive. Array Operations Object[] toArray(); Object[] toArray(Object a[]); These methods bined with Arrays.asList() method provide the bridge between arrays and collections. Iterators Iterator iterator(); Iterator is an interface which has these methods. boolean hasNext(); Object next(); 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. Set No new methods defined. The add() method returns false, if the element is already in the Set. No exceptions are thrown. List Element Access by Index Object get(int index); Object set(int index, Object element); void add(int index, Object element); Object remove(int index); boolean addAll(int index, Collection c); First index is 0, last index is size() – 1. An illegal index throws IndexOutOfBoundsException. Element Search int indexOf(Object o); int lastIndexOf(Object o); If the element is not found, return –1. List Iterators ListIterator listIterator(); ListIterator listIterator(int index); ListIterator extends Iterator. It allows iteration in both directions. ListIterator’s additional methods: boolean hasPrevious(); boolean previous(); int nextIndex(); int prviousIndex(); void set(Object o); void add(Object o); Open Range View List subList(int fromIndex, int toIndex); Returns a range of the list from fromIndex (inclusive) to toIndex (exclusive). Changes to view are reflected in the list and vice versa. Map Basic Operations Object 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 the old value, if the map previously contained a mapping for that key. The get method returns null, if the specified key couldn’t be found in the map. Bulk Operations void putAll(Map t); void clear(); putAll() adds all the elements from the specified map. clear() removes all the elements from the map. Collection Views Set 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 <key,value> pair is represented by an Object implementing Map.Entry interface. Object getKey(); Object getValue(); Object setValue(Object value); SortedSet Range View Operations SortedSet headSet(Object toElement); SortedSet tailSet(Object fromElement); SortedSet subSet(Object fromElement, Object toElement); fromElement is inclusive, toElement is exclusive. The views present the elements sorted in the same order as the underlying sorted set. Min-Max Points Object first(); Object last(); Return the first (lowest) and last (highest) elements. parator Access parator parator(); Returns the partor associated with this SortedSet, or null if it uses natural ordering. SortedMap Range View Operations SortedMap headMap(Object toKey); SortedSet tailMap(Object fromKey); SortedSet subMap(Object fromKey, Object toKey); SortedMap is sorted with keys. fromKey is inclusive, toKey is exclusive. The views present the elements sorted in the same order as the underlying sorted map. Min-Max Points Object firstKey(); Object lastKey(); Return the first (lowest) and last (highest) keys. parator Access parator 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 ways. 1. 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 current 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 automatically by the Collections.sort() method. 2. 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 object. It is remended that its implementation doesn’t 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, HashTable 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 index. However, 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 extends Vector and implements a LIFO stack. With the usual push() and pop() methods, 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 extends dictionary. Elements are stored as key-value pairs. · Vector and HashTable are the only classes that are thread-safe. · ArrayList (does what Vector does), HashMap(does what HashTable does), LinkedList and TreeMap are new classes in Java 1.2 · In 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 exclusively of 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-safety and data immutability. These methods return synchronized (thread-safe) / immutable collections from the specified collections. List safeList = Collections.synchronizedList(new LinkedList()); SortedMap fixedMap = Collections.unmodifiableSortedMap(new SortedMap()); · Constants to denote immutable empty collections in the Collections class: EMPTY_SET, EMPTY_LIST and EMPTY_MAP. · Collections class also has the following methods: Method Description public static Set singleton(Object o) Returns an immutable set containing only the specified object public static List singletonList(Object o) Returns an immutable list containing only the specified object public 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 allocated 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 List 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 HashSet(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 example, HashSet extends AbstractSet, which extends AbstractCollection. LinkedList extends AbstractList, which extends 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 needed. Each ponent of the bit set has a boolean value. The bits of a BitSet are indexed by nonnegative integers. Individual indexed bits can be examined, set, or cleared. One BitSet may be used to modify the contents of another BitSet through logical AND, logical inclusive OR, and logical exclusive OR 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. · ConcurrentModificationException exception (extends RuntimeException) may be thrown by methods that have detected concurrent modification of a backing object when such modification is not permissible. For example, 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 exception 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-deterministic behavior at an undetermined time in the future. The big advantage of the collections over arrays is that the collections are growable, you do not have to assign the size at creation time. The drawback of collections is that they only store objects and not primitives and this es with an inevitable performance overhead. Arrays do not directly support sorting, but this can be overe by using the static methods of the Collections. Here is an example. import java.util.*; public class Sort{ public static void main(String argv[]){ Sort s = new Sort(); } Sort(){ String s[] = new String[4]; s[0]="z"; s[1]="b"; s[2]="c"; s[3]="a"; Arrays.sort(s); for(int i=0;i< s.length;i++) System.out.println(s[i]); } }展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




Java数据结构及集合类.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4515917.html