常用集合类和接口(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));
        }
    }
}

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