常用集合類和接口(List 集合 ,set集合 Map集合)

一、List 集合

  • 集合:與數組相似,存放一些數據的集合
    • List 集合 特點:
    • 1.長度可變
    • 2.可以發個不同的數據類型
    • 3.通過下標來獲取數據
    • 4.集合中的元素是有序的
    • 5.允許有重複的元素
    • 6.鏈表集合

二、set集合

  • (1) set集合
    • 特點:
    • 1.沒有索引
    • 2.不允許有重複元素
    • 3.集合中放入元素是無序的
    • 4.允許有null值
    • 5.非線程安全
  • (2)TreeSet
    • 1.有序集合,元素按照自然序列排序
    • 2.不能有null值
    • 3.線程安全的
    • 4.不允許有重複元素

三、Map集合

  • (1) HashMap: 鍵值對儲存 key : value

    • 1.key不能重複,如果重複,value的值就會被覆蓋
    • 2.key 和 value 都可以是空值
    • 3.無序儲存的
    • 4.非線程安全
  • (2)HashTable

    • 1.不允許有null值(key和value都不能是null)
    • 2.線程安全的

四、代碼測試

  • (1)List 集合
package 練習;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class ListDemo {
    public static void main(String[] args) {
        //list集合
        /**
         * 集合:與數組相似,存放一些數據的集合
         */
        List list = new ArrayList();
        list.add(123);
        list.add("張三");
        list.add(new Object());
        list.add(null);

        //輸出打印
        System.out.println(list.get(0));
        System.out.println(list.get(1));
        System.out.println(list.get(2));

        //獲取集合長度
        System.out.println("集合的長度:"+list.size());

        //刪除集合
        list.remove(0);
        System.out.println("集合刪除後的長度:"+list.size());

        //刪除一個元素後,後邊的元素會向前填補
        System.out.println(list.get(0));

        //遍歷集合
        for(int i = 0 ; i < list.size() ; i++)
        {
            System.out.println(list.get(i));
        }
        /**
         * 鏈表集合
         */
        List<String> linklist = new LinkedList<String>();
        linklist.add("123");
        linklist.add("456");
        linklist.add("789");

        //輸出打印
        for(int i = 0 ; i < linklist.size() ; i++){
            System.out.println(linklist.get(1));
        }
        //第二種遍歷方式:集合中的類型應該是同一種類型
        for(String temp :linklist ){
            System.out.println(temp);
        }
    }
}

  • (2)set集合
package 練習;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class SetDemo {
    public static void main(String[] args) {
        //set集合
       
        Set<String> set = new HashSet<>() ;
        set.add("123");
        set.add("456");
        set.add("ijk");
        //重複添加只有一個123
        set.add("123");
        set.add("789");
        set.add(null);

        //輸出
        System.out.println(set);
        //輸出
        for(String temp : set){
            System.out.println(temp);
        }
        //集合中存放對象
        Object obj1 = new Object();
        Object obj2 = new Object();

        HashSet<Object> objset = new HashSet<Object>();
        objset.add(obj1);
        objset.add(obj2);

        //打印輸出
        System.out.println(objset);

        /**
         * TreeSet
         */
        Set<String> treeSet = new TreeSet<String>();
        treeSet.add("a");
        treeSet.add("e");
        treeSet.add("c");
        treeSet.add("f");
        treeSet.add("b");

        System.out.println(treeSet);

        //迭代器
        Iterator<String> it = treeSet.iterator();
        while(it.hasNext()){
        System.out.println(it.next());
        }

    }
}

  • (3)Map集合
package 練習;

import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;

public class MapDemo {
    public static void main(String[] args) {
        //Map
        /**
         * HashMap: 鍵值對儲存 key : value
         */
        Map<String , String> map = new HashMap<String , String>();
        map.put("1" , "北京");
        map.put("2" , "上海");
        map.put("3" , "廣州");
        //通過key獲取數據
        System.out.println(map.get("2"));
        //修改數據
        map.put("3","西安");
        System.out.println(map.get("3"));

        //設置null值
        map.put(null,"其他城市");
        System.out.println(map.get(null));

        //刪除
        map.remove("3");
        //遍歷
        //只遍歷value
        Iterator<String> it = map.values().iterator();
        while(it.hasNext()){
            System.out.println("遍歷元素:"+it.next());
        }
        //同時遍歷key和value
        for(String key : map.keySet()){
            System.out.println(key+" : "+map.get(key));
        }
        //entrySet方法返回key和value的對象集合
        for(Map.Entry<String , String> entry : map.entrySet()){

            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+" : "+value);
        }

        /**
         * HashTable
         */
        Map<String , String> table = new Hashtable<>();
        table.put("1" , "北京");
        table.put("2" , "上海");
        table.put("3" , "廣州");

        for(String key : table.keySet()){
            System.out.println(key+" : "+table.get(key));
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章