java (10) 集合类
生活随笔
收集整理的這篇文章主要介紹了
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 實例
?
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");// 打印“棧”System.out.println("stack:" + stack);// 刪除“棧頂元素”System.out.println("stack.pop():" + stack.pop());// 取出“棧頂元素”System.out.println("stack.peek():" + stack.peek());// 打印“棧”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 遍歷方式? ?
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) 集合类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL查看、创建和删除索引的方法
- 下一篇: 项目开发环境(h5+pc的开发思路是一样