一段代碼弄懂關於Java中List、Set聚集及Map的應用。本站提示廣大學習愛好者:(一段代碼弄懂關於Java中List、Set聚集及Map的應用)文章只能為提供參考,不一定能成為您想要的結果。以下是一段代碼弄懂關於Java中List、Set聚集及Map的應用正文
Java中List、Set聚集及Map的應用代碼以下所示:
package tingjizifu; import java.util.*; public class TongJi { /* * 應用Scanner從掌握台讀取一個字符串,統計字符串中每一個字符湧現的次數,請求應用進修過的常識完成以上請求 * 完成思緒依據Set、List、Map聚集的特征完成。 */ public static void main(String[] args) { // 輸出字符串 Scanner input = new Scanner(System.in); String shuRu = input.next(); // 把字符串字符裝入List聚集 List<String> list = new ArrayList<String>(); for (int i = 0; i < shuRu.length(); i++) { list.add(String.valueOf(shuRu.charAt(i))); } // 把字符串字符裝入Set聚集 Set<String> set = new HashSet<String>(); for (int i = 0; i < shuRu.length(); i++) { set.add(String.valueOf(shuRu.charAt(i))); } // 用Set中的字符與List中的字符停止比擬,雷同就加1停止計數, // 然後把Set聚集中的字符作為鍵(key),統計的數作為值(value),最初打印出Map中的數據 Map<String, Integer> map = new HashMap<String, Integer>(); for (String str : set) { int sum = 0; // System.out.println(str); for (int i = 0; i < list.size(); i++) { if (list.get(i).equals(str)) { sum++; } } map.put(str, sum); } Set<String> ss = map.keySet(); for (String str : ss) { System.out.println(str + "湧現次數為" + map.get(str) + "次"); } input.close(); } }
上面看下set map list的差別
都是聚集接口
set --個中的值不許可反復,無序的數據構造
list --個中的值許可反復,由於其為有序的數據構造
map--成對的數據構造,健值必需具有獨一性(鍵不克不及同,不然值調換)
List 按對象進入的次序保留對象,不做排序或編纂操作。
Set對每一個對象只接收一次,並應用本身外部的排序辦法(平日,你只關懷某個元素能否屬於Set,而不關懷它的次序--不然應當應用List)。
Map異樣對每一個元素保留一份,但這是基於"鍵"的,Map也有內置的排序,因此不關懷元素添加的次序。假如添加元素的次序對你很主要,應當應用 LinkedHashSet或許LinkedHashMap.
Collection 是對象聚集, Collection 有兩個子接口 List 和 Set
List 可以經由過程下標 (1,2..) 來獲得值,值可以反復
而 Set 只能經由過程游標來取值,而且值是不克不及反復的
ArrayList , Vector , LinkedList 是 List 的完成類
ArrayList 是線程不平安的, Vector 是線程平安的,這兩個類底層都是由數組完成的
LinkedList 是線程不平安的,底層是由鏈表完成的
Map 是鍵值對聚集
HashTable 和 HashMap 是 Map 的完成類
HashTable 是線程平安的,不克不及存儲 null 值
HashMap 不是線程平安的,可以存儲 null 值
以上所述是小編給年夜家引見的關於Java中List、Set聚集及Map的應用常識,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!