網(wǎng)站的meta標(biāo)簽優(yōu)化東營(yíng)seo網(wǎng)站排名
鶴壁市浩天電氣有限公司
2026/01/24 08:47:32
網(wǎng)站的meta標(biāo)簽優(yōu)化,東營(yíng)seo網(wǎng)站排名,網(wǎng)站開發(fā)的試用期條款,wordpress十大主題Java集合框架體系概要
java.util包下
java.util.Collection#xff1a;存儲(chǔ)一個(gè)一個(gè)數(shù)據(jù) 子接口#xff1a;List#xff1a;存儲(chǔ)有序的、可重復(fù)的數(shù)據(jù)#xff08;“動(dòng)態(tài)”數(shù)組#xff09; ArrayList#xff08;主要實(shí)現(xiàn)類#xff09;、LinkedList、Vector 子接口…Java集合框架體系概要java.util包下java.util.Collection存儲(chǔ)一個(gè)一個(gè)數(shù)據(jù)子接口List存儲(chǔ)有序的、可重復(fù)的數(shù)據(jù)“動(dòng)態(tài)”數(shù)組ArrayList主要實(shí)現(xiàn)類、LinkedList、Vector子接口Set存儲(chǔ)無序的、不可重復(fù)的數(shù)據(jù)高中學(xué)習(xí)的集合HashSet主要實(shí)現(xiàn)類、LinkedHashSet、TreeSetjava.util.Map存儲(chǔ)一對(duì)一對(duì)的數(shù)據(jù)key-value鍵值對(duì)x1y1、x2y2— yf(x)類似高中的函數(shù)HashMap主要實(shí)現(xiàn)類、LinkedHashMap、TreeMap、Hashtable、PropertiesCollection接口及方法JDK不提供此接口的任何直接實(shí)現(xiàn)而是提供更具體的子接口如Set和List去實(shí)現(xiàn)。Collection 接口是 List和Set接口的父接口該接口里定義的方法既可用于操作 Set 集合也可用于操作 List 集合。方法如下添加1add(E obj)添加元素對(duì)象到當(dāng)前集合中2addAll(Collection other)添加other集合中的所有元素對(duì)象到當(dāng)前集合中即this this ∪ otherTestpublicvoidtest1(){CollectioncollnewArrayList();//add()coll.add(AA);coll.add(123);coll.add(newObject());coll.add(newPerson(Tom,10));System.out.println(coll);//[AA, 123, java.lang.Object6574b225, Person{nameTom, age10}]//addAll()Collectioncoll1newArrayList();coll1.add(456);coll1.add(BB);coll.addAll(coll1);System.out.println(coll);//[AA, 123, java.lang.Object6574b225, Person{nameTom, age10}, 456, BB]}判斷3int size()獲取當(dāng)前集合中實(shí)際存儲(chǔ)的元素個(gè)數(shù)4boolean isEmpty()判斷當(dāng)前集合是否為空集合5boolean contains(Object obj)判斷當(dāng)前集合中是否存在一個(gè)與obj對(duì)象equals返回true的元素6boolean containsAll(Collection coll)判斷coll集合中的元素是否在當(dāng)前集合中都存在。即coll集合是否是當(dāng)前集合的“子集”7boolean equals(Object obj)判斷當(dāng)前集合與obj是否相等//size()System.out.println(coll.size());//4System.out.println(coll1.size());//2//isEmpty()System.out.println(coll.isEmpty());//false//contains()System.out.println(coll.contains(aa));//falseSystem.out.println(coll.contains(AA));//trueSystem.out.println(coll.contains(newPerson(Tom,10)));//false//equals()coll.equals(coll);//truecoll.equals(coll1);//false刪除8void clear()清空集合元素9 boolean remove(Object obj) 從當(dāng)前集合中刪除第一個(gè)找到的與obj對(duì)象equals返回true的元素。10boolean removeAll(Collection coll)從當(dāng)前集合中刪除所有與coll集合中相同的元素。即this this - this ∩ coll11boolean retainAll(Collection coll)從當(dāng)前集合中刪除兩個(gè)集合中不同的元素使得當(dāng)前集合僅保留與coll集合中的元素相同的元素即當(dāng)前集合中僅保留兩個(gè)集合的交集即this this ∩ coll//clear()// coll.clear();System.out.println(coll);//[]System.out.println(coll.size());//0//remove()coll.remove(newPerson(Tom,10));//[AA, 123, java.lang.Object6574b225]coll.remove(AA);//[123, java.lang.Object6574b225]System.out.println(coll);//removeAll()coll.removeAll(coll1);System.out.println(coll);//[java.lang.Object6574b225]//retainAll()coll.retainAll(coll1);其他12Object[] toArray()返回包含當(dāng)前集合中所有元素的數(shù)組13hashCode()獲取集合對(duì)象的哈希值14iterator()返回迭代器對(duì)象用于集合遍歷//toArray()Object[]objcoll.toArray();System.out.println(Arrays.toString(obj));//[AA, 123, java.lang.Object6574b225, Person{nameTom, age10}]//hashCode()System.out.println(coll.hashCode());//-1407561297注數(shù)組 — 集合asList(Object … objs)? 集合 — 數(shù)組toArray()Iterator(迭代器)接口作用本身并不提供存儲(chǔ)對(duì)象的能力用來遍歷集合元素獲取迭代器對(duì)象Iteratoriteratorcoll.iterator();實(shí)現(xiàn)遍歷的三種方式Testpublicvoidtest1(){CollectioncollnewArrayList();coll.add(AA);coll.add(newPerson(Tom,10));coll.add(128);coll.add(newString(高數(shù)));//獲取迭代器對(duì)象Iteratoriteratorcoll.iterator();//方式一// System.out.println(iterator.next());//AA// System.out.println(iterator.next());//Person{nameTom, age10}// System.out.println(iterator.next());//128// System.out.println(iterator.next());//高數(shù)//方式二// for (int i 0; i coll.size(); i)// {// System.out.println(iterator.next());// }//方式三:推薦用法while(iterator.hasNext()){System.out.println(iterator.next());}}迭代器的執(zhí)行原理Iterator迭代器對(duì)象在遍歷集合時(shí)內(nèi)部采用指針的方式來跟蹤集合中的元素接下來通過一個(gè)圖例來演示Iterator對(duì)象迭代元素的過程foreach循環(huán)foreach循環(huán)也稱增強(qiáng)for循環(huán)是 JDK5.0 中定義的一個(gè)高級(jí)for循環(huán)專門用來遍歷數(shù)組和集合的內(nèi)部原理其實(shí)就是迭代器。foreach循環(huán)的語(yǔ)法格式for(元素的數(shù)據(jù)類型 局部變量 : Collection集合或數(shù)組) { //操作局部變量的輸出操作 } //這里局部變量就是一個(gè)臨時(shí)變量自己命名就可以Test public void test1() { Collection coll new ArrayList(); coll.add(AA); coll.add(new Person(Tom,10)); coll.add(128); coll.add(new String(高數(shù))); //遍歷集合 for(Object obj : coll) { System.out.println(obj); } int[] a new int[]{1,2,3,4,5}; //遍歷數(shù)組 for (Object obj : a) { System.out.println(obj); } }注foreach通常只用來進(jìn)行遍歷操作一般不進(jìn)行增刪操作在foreach中進(jìn)行增刪操作會(huì)破壞迭代器的狀態(tài)List接口特點(diǎn)鑒于Java中數(shù)組用來存儲(chǔ)數(shù)據(jù)的局限性我們通常使用java.util.List替代數(shù)組List集合類中元素有序、且可重復(fù)集合中的每個(gè)元素都有其對(duì)應(yīng)的順序索引。List集合類中元素有序、且可重復(fù)集合中的每個(gè)元素都有其對(duì)應(yīng)的順序索引。常用方法插入元素void add(int index, Object ele):在index位置插入ele元素boolean addAll(int index, Collection eles):從index位置開始將eles中的所有元素添加進(jìn)來獲取元素Object get(int index):獲取指定index位置的元素List subList(int fromIndex, int toIndex):返回從fromIndex到toIndex位置的子集合獲取元素索引int indexOf(Object obj):返回obj在集合中首次出現(xiàn)的位置int lastIndexOf(Object obj):返回obj在當(dāng)前集合中末次出現(xiàn)的位置刪除和替換元素Object remove(int index):移除指定index位置的元素并返回此元素Object set(int index, Object ele):設(shè)置指定index位置的元素為eleTestpublicvoidtest1(){ListlistnewArrayList();list.add(AA);list.add(BB);list.add(123);list.add(newPerson(Tom,10));System.out.println(list);//[AA, BB, 123, Person{nameTom, age10}]//add(int index,Object element)list.add(2,CC);System.out.println(list);//[AA, BB, CC, 123, Person{nameTom, age10}]//addAll(int index,Collection else)Listlist1Arrays.asList(1,2,3);// list.add(2,list1);//將list1整體作為一個(gè)元素插入集合中System.out.println(list);//[AA, BB, [1, 2, 3], CC, 123, Person{nameTom, age10}]list.addAll(2,list1);//將集合中的所有元素插入到指定位置中System.out.println(list);//[AA, BB, 1, 2, 3, CC, 123, Person{nameTom, age10}]//remove(int index)//刪除索引2list.remove(2);//[AA, BB, 2, 3, CC, 123, Person{nameTom, age10}]System.out.println(list);//刪除數(shù)據(jù)“2”list.remove(Integer.valueOf(2));System.out.println(list);//[AA, BB, 3, CC, 123, Person{nameTom, age10}]}List實(shí)現(xiàn)類之間的區(qū)別ArrayListList的主要實(shí)現(xiàn)類線程不安全的、效率高底層使用Object[]數(shù)組存儲(chǔ)VectorList的古老實(shí)現(xiàn)類線程安全的、效率低底層使用Object[]數(shù)組存儲(chǔ)LinkedList底層使用雙向鏈表的方式進(jìn)行存儲(chǔ)對(duì)于頻繁的插入或刪除元素的操作建議使用LinkedList類效率較高。這是由底層采用鏈表雙向鏈表結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)決定的。特有方法void addFirst(Object obj)void addLast(Object obj)Object getFirst()Object getLast()Object removeFirst()Object removeLast()Set接口Set接口是Collection的子接口Set接口相較于Collection接口沒有提供額外的方法Set 集合不允許包含相同的元素如果試把兩個(gè)相同的元素加入同一個(gè) Set 集合中則添加操作失敗。Set集合支持的遍歷方式和Collection集合一樣foreach和Iterator。Set的常用實(shí)現(xiàn)類有HashSet、TreeSet、LinkedHashSet。較ListMap來說Set使用的較少用來過濾重復(fù)數(shù)據(jù)HashSet、LinkedHashSet特性無序性不等于隨機(jī)性set的值存入數(shù)組是根據(jù)其數(shù)據(jù)的哈希值確定位置 所以導(dǎo)致其位置分布沒有順序不可重復(fù)性傳入Set集合的類必須要重寫equlas和hashCode方法存入set集合的值會(huì)先判斷其哈希值是否相同如果相同則無法存入集合主要實(shí)現(xiàn)類HashSet底層使用的是HashMap即使用數(shù)組單向鏈表紅黑樹結(jié)構(gòu)進(jìn)行存儲(chǔ)實(shí)現(xiàn)類LinkedHashSet為HashSet的子類在現(xiàn)有的數(shù)組單向鏈表紅黑樹結(jié)構(gòu)中增加一對(duì)雙向鏈表可以按照元素順序?qū)崿F(xiàn)遍歷便于頻繁的查詢操作實(shí)現(xiàn)類TreeSet底層使用紅黑樹存儲(chǔ)可以按照添加元素的指定屬性的大小順序進(jìn)行遍歷默認(rèn)自然排序添加到TreeSet中的元素必須是同一個(gè)類型的對(duì)象否則會(huì)報(bào)ClassCastException判斷元素是否相同不考慮hashCode和equals方法意味著TreeSet中的元素不必要重寫hashCode和equals方法比較元素大小或比較元素是否相等的標(biāo)準(zhǔn)是compareTo()或compare()的返回值返回值為0說明相等Map接口存儲(chǔ)一對(duì)一對(duì)的數(shù)據(jù)key-value鍵值對(duì)x1y1、x2y2— yf(x)類似高中的函數(shù)Map中的key彼此之間是不可重復(fù)的、無序的所有的key就構(gòu)成了一個(gè)Set集合所以key所在的類要重寫HashCode和equals方法Map中的value彼此之間是可重復(fù)的、無序的所有的value構(gòu)成一個(gè)Collection集合所以value所在的類要重寫equals方法key-value構(gòu)成一個(gè)entry所有的entry彼此之間是不可重復(fù)的、無序的所有的entry構(gòu)成一個(gè)Set集合常用方法添加、修改操作Object put(Object key,Object value)將指定key-value添加到(或修改)當(dāng)前map對(duì)象中void putAll(Map m):將m中的所有key-value對(duì)存放到當(dāng)前map中刪除操作Object remove(Object key)移除指定key的key-value對(duì)并返回valuevoid clear()清空當(dāng)前map中的所有數(shù)據(jù)元素查詢的操作Object get(Object key)獲取指定key對(duì)應(yīng)的valueboolean containsKey(Object key)是否包含指定的keyboolean containsValue(Object value)是否包含指定的valueint size()返回map中key-value對(duì)的個(gè)數(shù)boolean isEmpty()判斷當(dāng)前map是否為空boolean equals(Object obj)判斷當(dāng)前map和參數(shù)對(duì)象obj是否相等元視圖操作的方法Set keySet()返回所有key構(gòu)成的Set集合Collection values()返回所有value構(gòu)成的Collection集合Set entrySet()返回所有key-value對(duì)構(gòu)成的Set集合主要實(shí)現(xiàn)類HashMap主要實(shí)現(xiàn)類線程不安全的效率高可以添加null的key值或value值底層使用數(shù)組單向鏈表紅黑樹結(jié)構(gòu)存儲(chǔ)子類LinkedHashMap在HashMap數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上增加了一對(duì)雙向鏈表用于記錄添加元素的先后順序遍歷時(shí)按照遍歷的順序顯示開發(fā)中頻繁的遍歷操作建議使用此類實(shí)現(xiàn)類Hashtable古老實(shí)現(xiàn)類線程安全的效率低不可以添加null的key或value值底層使用數(shù)組單向鏈表結(jié)構(gòu)存儲(chǔ)子類Propertieskey和value都是String類型常用來處理屬性文件實(shí)現(xiàn)類TreeMap底層使用紅黑樹存儲(chǔ)可以按照添加的key-value中的key元素的指定的屬性大小順序進(jìn)行排序需要考慮自然排序、定制排序**參考TreeSet**TreeMap中key必須是同一類的對(duì)象判斷元素是否相同不考慮hashCode和equals方法意味著TreeSet中的元素不必要重寫hashCode和equals方法比較元素大小或比較元素是否相等的標(biāo)準(zhǔn)是compareTo()或compare()的返回值返回值為0說明相等Collections工具類參考操作數(shù)組的工具類ArraysCollections 是一個(gè)操作 Set、List 和 Map 等集合的工具類。常用方法Collections 中提供了一系列靜態(tài)的方法對(duì)集合元素進(jìn)行排序、查詢和修改等操作還提供了對(duì)集合對(duì)象設(shè)置不可變、對(duì)集合對(duì)象實(shí)現(xiàn)同步控制等方法均為static方法排序操作reverse(List)反轉(zhuǎn) List 中元素的順序shuffle(List)對(duì) List 集合元素進(jìn)行隨機(jī)排序sort(List)根據(jù)元素的自然順序?qū)χ付?List 集合元素按升序排序sort(ListComparator)根據(jù)指定的 Comparator 產(chǎn)生的順序?qū)?List 集合元素進(jìn)行排序swap(Listint int)將指定 list 集合中的 i 處元素和 j 處元素進(jìn)行交換查找Object max(Collection)根據(jù)元素的自然順序返回給定集合中的最大元素Object max(CollectionComparator)根據(jù) Comparator 指定的順序返回給定集合中的最大元素Object min(Collection)根據(jù)元素的自然順序返回給定集合中的最小元素Object min(CollectionComparator)根據(jù) Comparator 指定的順序返回給定集合中的最小元素int binarySearch(List list,T key)在List集合中查找某個(gè)元素的下標(biāo)但是List的元素必須是T或T的子類對(duì)象而且必須是可比較大小的即支持自然排序的。而且集合也事先必須是有序的否則結(jié)果不確定。int binarySearch(List list,T key,Comparator c)在List集合中查找某個(gè)元素的下標(biāo)但是List的元素必須是T或T的子類對(duì)象而且集合也事先必須是按照c比較器規(guī)則進(jìn)行排序過的否則結(jié)果不確定。int frequency(Collection cObject o)返回指定集合中指定元素的出現(xiàn)次數(shù)復(fù)制、替換void copy(List dest,List src)將src中的內(nèi)容復(fù)制到dest中boolean replaceAll(List listObject oldValObject newVal)使用新值替換 List 對(duì)象的所有舊值提供了多個(gè)unmodifiableXxx()方法該方法返回指定 Xxx的不可修改的視圖。添加boolean addAll(Collection c,T… elements)將所有指定元素添加到指定 collection 中。同步Collections 類中提供了多個(gè) synchronizedXxx() 方法該方法可使將指定集合包裝成線程同步的集合從而可以解決多線程并發(fā)訪問集合時(shí)的線程安全問題