日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java (10) 集合类

發布時間:2025/5/22 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java (10) 集合类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.集合概述

集合按照存儲結構可以分為兩類,即單列集合 Collection 和雙列集合 Map。 * Collection 用于存儲一系列符合某種規則的元素,它有兩個重要的自接口,分別是List和Set。--List 的特點是元素有序、元素可重復。List接口的主要實現類有 ArrayList 和 LinkeList--Set 的特點是元素無序、元素不可重復。Set 接口的主要實現類有 HashSet 和 TreeSet* Map 用于存儲具有鍵(Key)、值(Value)映射關系的元素。Map接口的主要實現類有HashMap 和 TreeMap。

?

2.實例
2.1 ArrayList 實例

package test02;import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator;public class ArrayListExamples {public static void main(String[] args) {//創建一個空的數組鏈表對象list,list用來存放String類型的數據ArrayList<String> list = new ArrayList<String>();//添加元素到list對象中list.add("Item01");list.add("Item02");list.add(2,"Item03"); //將會把Item03字符串增加到list的第3個位置list.add("Item04");// 顯示數組鏈表中的內容System.out.println("The arraylist contains the following elements: " + list); // 檢查元素的位置int pos = list.indexOf("Item2");System.out.println("The index of Item2 is: " + pos);// 檢查數組鏈表是否為空boolean check = list.isEmpty();System.out.println("Checking if the arraylist is empty: " + check);// 獲取鏈表的大小int size = list.size();System.out.println("The size of the list is: " + size);// 檢查數組鏈表中是否包含某元素boolean element = list.contains("Item5");System.out.println("Checking if the arraylist contains the object Item5: "+ element);// 獲取指定位置上的元素String item = list.get(0);System.out.println("The item is the index 0 is: " + item);// 遍歷arraylist中的元素// 第1種方法: 循環使用元素的索引和鏈表的大小System.out.println("Retrieving items with loop using index and size list");for (int i = 0; i < list.size(); i++) {System.out.println("Index: " + i + " - Item: " + list.get(i));}// 第2種方法:使用foreach循環System.out.println("Retrieving items using foreach loop");for (String str : list) {System.out.println("Item is: " + str);}// 第三種方法:使用迭代器// hasNext(): 返回true表示鏈表鏈表中還有元素// next(): 返回下一個元素System.out.println("Retrieving items using iterator");for (Iterator<String> it = list.iterator(); it.hasNext();) {System.out.println("Item is: " + it.next());}// 替換元素list.set(1, "NewItem");System.out.println("The arraylist after the replacement is: " + list);// 移除元素// 移除第0個位置上的元素list.remove(0);// 移除第一次找到的 "Item3"元素list.remove("Item3");System.out.println("The final contents of the arraylist are: " + list);// 轉換 ArrayList 為 ArrayString[] simpleArray = list.toArray(new String[list.size()]);System.out.println("The array created after the conversion of our arraylist is: "+ Arrays.toString(simpleArray)); } }

?

2.2 LinkedList 實例

2.2.1 LinkedList遍歷方式???

package test02;import java.util.Iterator; import java.util.LinkedList; import java.util.NoSuchElementException;public class LinkedListThruTest {public static void main(String[] args) {// 通過Iterator遍歷LinkedList iteratorLinkedListThruIterator(getLinkedList());// 通過快速隨機訪問遍歷LinkedList iteratorLinkedListThruForeach(getLinkedList());// 通過for循環的變種來訪問遍歷LinkedList iteratorThroughFor2(getLinkedList());// 通過PollFirst()遍歷LinkedList iteratorThroughPollFirst(getLinkedList());// 通過PollLast()遍歷LinkedList iteratorThroughPollLast(getLinkedList());// 通過removeFirst()遍歷LinkedList iteratorThroughRemoveFirst(getLinkedList());// 通過removeLast()遍歷LinkedList iteratorThroughRemoveLast(getLinkedList());}//創建列表private static LinkedList getLinkedList() {LinkedList llist = new LinkedList();for (int i = 0; i < 100000; i++)llist.addLast(i);return llist;}/*** 通過快迭代器遍歷LinkedList*/private static void iteratorLinkedListThruIterator(LinkedList<Integer> list) {if (list == null)return;// 記錄開始時間long start = System.currentTimeMillis();for (Iterator iter = list.iterator(); iter.hasNext();)iter.next();// 記錄結束時間long end = System.currentTimeMillis();long interval = end - start;System.out.println("iteratorLinkedListThruIterator:" + interval + " ms");}/*** 通過快速隨機訪問遍歷LinkedList*/private static void iteratorLinkedListThruForeach(LinkedList<Integer> list) {if (list == null)return;// 記錄開始時間long start = System.currentTimeMillis();int size = list.size();for (int i = 0; i < size; i++) {list.get(i);}// 記錄結束時間long end = System.currentTimeMillis();long interval = end - start;System.out.println("iteratorLinkedListThruForeach:" + interval + " ms");}/*** 通過另外一種for循環來遍歷LinkedList*/private static void iteratorThroughFor2(LinkedList<Integer> list) {if (list == null)return;// 記錄開始時間long start = System.currentTimeMillis();for (Integer integ : list);// 記錄結束時間long end = System.currentTimeMillis();long interval = end - start;System.out.println("iteratorThroughFor2:" + interval + " ms");}/*** 通過pollFirst()來遍歷LinkedList*/private static void iteratorThroughPollFirst(LinkedList<Integer> list) {if (list == null)return;// 記錄開始時間long start = System.currentTimeMillis();while (list.pollFirst() != null);// 記錄結束時間long end = System.currentTimeMillis();long interval = end - start;System.out.println("iteratorThroughPollFirst:" + interval + " ms");}/*** 通過pollLast()來遍歷LinkedList*/private static void iteratorThroughPollLast(LinkedList<Integer> list) {if (list == null)return;// 記錄開始時間long start = System.currentTimeMillis();while (list.pollLast() != null);// 記錄結束時間long end = System.currentTimeMillis();long interval = end - start;System.out.println("iteratorThroughPollLast:" + interval + " ms");}/*** 通過removeFirst()來遍歷LinkedList*/private static void iteratorThroughRemoveFirst(LinkedList<Integer> list) {if (list == null)return;// 記錄開始時間long start = System.currentTimeMillis();try {while (list.removeFirst() != null);} catch (NoSuchElementException e) {}// 記錄結束時間long end = System.currentTimeMillis();long interval = end - start;System.out.println("iteratorThroughRemoveFirst:" + interval + " ms");}/*** 通過removeLast()來遍歷LinkedList*/private static void iteratorThroughRemoveLast(LinkedList<Integer> list) {if (list == null)return;// 記錄開始時間long start = System.currentTimeMillis();try {while (list.removeLast() != null);} catch (NoSuchElementException e) {}// 記錄結束時間long end = System.currentTimeMillis();long interval = end - start;System.out.println("iteratorThroughRemoveLast:" + interval + " ms");}}

?

2.2.2 LinkedList的常用API示例

package test02;import java.util.List; import java.util.Iterator; import java.util.LinkedList; import java.util.NoSuchElementException;public class LinkedListTest {public static void main(String[] args) {// 測試LinkedList的API testLinkedListAPIs();// 將LinkedList當作 LIFO(后進先出)的堆棧 useLinkedListAsLIFO();// 將LinkedList當作 FIFO(先進先出)的隊列 useLinkedListAsFIFO();}/** 測試LinkedList中部分API*/private static void testLinkedListAPIs() {String val = null;// LinkedList llist;// llist.offer("10");// 新建一個LinkedList LinkedList llist = new LinkedList();// ---- 添加操作 ----// 依次添加1,2,3llist.add("1");llist.add("2");llist.add("3");// 將“4”添加到第一個位置llist.add(1, "4");System.out.println("\nTest \"addFirst(), removeFirst(), getFirst()\""); // (01) 將“10”添加到第一個位置。 失敗的話,拋出異常!llist.addFirst("10");System.out.println("llist:" + llist);// (02) 將第一個元素刪除。 失敗的話,拋出異常!System.out.println("llist.removeFirst():" + llist.removeFirst());System.out.println("llist:" + llist);// (03) 獲取第一個元素。 失敗的話,拋出異常!System.out.println("llist.getFirst():" + llist.getFirst());System.out.println("\nTest \"offerFirst(), pollFirst(), peekFirst()\"");// (01) 將“10”添加到第一個位置。 返回true。llist.offerFirst("10");System.out.println("llist:" + llist);// (02) 將第一個元素刪除。 失敗的話,返回null。System.out.println("llist.pollFirst():" + llist.pollFirst());System.out.println("llist:" + llist);// (03) 獲取第一個元素。 失敗的話,返回null。System.out.println("llist.peekFirst():" + llist.peekFirst());System.out.println("\nTest \"addLast(), removeLast(), getLast()\"");// (01) 將“20”添加到最后一個位置。 失敗的話,拋出異常!llist.addLast("20");System.out.println("llist:" + llist);// (02) 將最后一個元素刪除。 失敗的話,拋出異常!System.out.println("llist.removeLast():" + llist.removeLast());System.out.println("llist:" + llist);// (03) 獲取最后一個元素。 失敗的話,拋出異常!System.out.println("llist.getLast():" + llist.getLast());System.out.println("\nTest \"offerLast(), pollLast(), peekLast()\"");// (01) 將“20”添加到第一個位置。 返回true。llist.offerLast("20");System.out.println("llist:" + llist);// (02) 將第一個元素刪除。 失敗的話,返回null。System.out.println("llist.pollLast():" + llist.pollLast());System.out.println("llist:" + llist);// (03) 獲取第一個元素。 失敗的話,返回null。System.out.println("llist.peekLast():" + llist.peekLast());// 將第3個元素設置300。不建議在LinkedList中使用此操作,因為效率低!llist.set(2, "300");// 獲取第3個元素。不建議在LinkedList中使用此操作,因為效率低!System.out.println("\nget(3):" + llist.get(2));// ---- toArray(T[] a) ----// 將LinkedList轉行為數組String[] arr = (String[]) llist.toArray(new String[0]);for (String str : arr)System.out.println("str:" + str);// 輸出大小System.out.println("size:" + llist.size());// 清空LinkedList llist.clear();// 判斷LinkedList是否為空System.out.println("isEmpty():" + llist.isEmpty() + "\n");}/*** 將LinkedList當作 LIFO(后進先出)的堆棧*/private static void useLinkedListAsLIFO() {System.out.println("\nuseLinkedListAsLIFO");// 新建一個LinkedListLinkedList stack = new LinkedList();// 將1,2,3,4添加到堆棧中stack.push("1");stack.push("2");stack.push("3");stack.push("4");// 打印“?!?/span>System.out.println("stack:" + stack);// 刪除“棧頂元素”System.out.println("stack.pop():" + stack.pop());// 取出“棧頂元素”System.out.println("stack.peek():" + stack.peek());// 打印“?!?/span>System.out.println("stack:" + stack);}/*** 將LinkedList當作 FIFO(先進先出)的隊列*/private static void useLinkedListAsFIFO() {System.out.println("\nuseLinkedListAsFIFO");// 新建一個LinkedListLinkedList queue = new LinkedList();// 將10,20,30,40添加到隊列。每次都是插入到末尾queue.add("10");queue.add("20");queue.add("30");queue.add("40");// 打印“隊列”System.out.println("queue:" + queue);// 刪除(隊列的第一個元素)System.out.println("queue.remove():" + queue.remove());// 讀取(隊列的第一個元素)System.out.println("queue.element():" + queue.element());// 打印“隊列”System.out.println("queue:" + queue);} }

2.3 HashMap 實例
2.3.1? HashMap 遍歷方式? ?

package test02;import java.util.HashMap; import java.util.Iterator; import java.util.Set; import java.util.Map.Entry;public class HashMapDemo {public static void main(String[] args) {HashMap<String, String> hashMap = new HashMap<String, String>();hashMap.put("cn", "中國");hashMap.put("jp", "日本");hashMap.put("fr", "法國");System.out.println(hashMap);System.out.println("cn:" + hashMap.get("cn"));System.out.println(hashMap.containsKey("cn"));System.out.println(hashMap.keySet());System.out.println(hashMap.isEmpty());hashMap.remove("cn");System.out.println(hashMap.containsKey("cn"));// 采用Iterator遍歷HashMapIterator it = hashMap.keySet().iterator();while (it.hasNext()) {String key = (String) it.next();System.out.println("key:" + key);System.out.println("value:" + hashMap.get(key));}// 遍歷HashMap的另一個方法Set<Entry<String, String>> sets = hashMap.entrySet();for (Entry<String, String> entry : sets) {System.out.print(entry.getKey() + ", ");System.out.println(entry.getValue());}} }

2.3.2 結合List和HashMap實現的例子

import java.util.HashMap; import java.util.Iterator; import java.util.Set; import java.util.Map.Entry;public class HashMapDemo {public static void main(String[] args) {HashMap<String, String> hashMap = new HashMap<String, String>();hashMap.put("cn", "中國");hashMap.put("jp", "日本");hashMap.put("fr", "法國");System.out.println(hashMap);System.out.println("cn:" + hashMap.get("cn"));System.out.println(hashMap.containsKey("cn"));System.out.println(hashMap.keySet());System.out.println(hashMap.isEmpty());hashMap.remove("cn");System.out.println(hashMap.containsKey("cn"));// 采用Iterator遍歷HashMapIterator it = hashMap.keySet().iterator();while (it.hasNext()) {String key = (String) it.next();System.out.println("key:" + key);System.out.println("value:" + hashMap.get(key));}// 遍歷HashMap的另一個方法Set<Entry<String, String>> sets = hashMap.entrySet();for (Entry<String, String> entry : sets) {System.out.print(entry.getKey() + ", ");System.out.println(entry.getValue());}} }

?

轉載于:https://www.cnblogs.com/polestar/p/7284171.html

總結

以上是生活随笔為你收集整理的java (10) 集合类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。