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的使用知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!