集合详解(超详细区别)

1.集合下面有两个大类

Collection类: List,  Set;
Map类

List:

ArrayList:

底层是可变数组, 有序,值可重复,可存放多个null, 线程不安全, 改查效率高, 第一次10, 第二次1.5倍扩

LinkedList:

底层是双向链表, 有序,值可重复,可存放多个null, 线程不安全, 增删效率高

Vector:

底层是可变数组, 有序,值可重复,可存放多个null, 线程安全, 第一次10, 第二次2倍扩

List遍历方式:1.增强for  2.迭代器  3.for循环

Set:

HashSet:

底层是数组+链表+红黑树, 无序,值唯一,可存放一个null(存放多个不会报错,会覆盖),第一次16,第二次2倍扩

LinkedHashSet:

底层是数组+双向链表, 有序, 值唯一, 可存放一个null(存放多个不会报错,会覆盖)

TreeSet:

底层是红黑树, 有序, 值唯一, 不可存放null

Set遍历方式: 1.增强for 2.迭代器

Map:

HashMap:

底层是数组+链表+红黑树, 无序, key唯一(可放一个null,放多个不会报错,会覆盖), value不唯一(可放多个null),第一次16,第二次2倍扩,线程不安全

TreeMap:

底层是红黑树, 有序,key唯一(不可存null),value不唯一(可放多个null), 线程不安全

HashTable:

无序,key唯一,value不唯一,都不能放null,线程安全,第一次是11,第二次是2倍+1

Map遍历方式: keySet之后,可用增强for和迭代器

各种类型代码演示:

package base;

import java.util.*;

/**
 * @program: demo1
 * @ClassName: 集合
 * @description:
 * @author: HY
 * @create: 2024-05-12 18:23
 */
public class Person {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("hello,ArrayList");
        list.add(null);
        list.add(null);
        for (String list1 : list){
            System.out.println(list1);
        }

        System.out.println("============================");

        LinkedList<String> llist = new LinkedList<>();
        llist.add("hello,LinkedList");
        llist.add(null);
        llist.add(null);
        Iterator<String> iterator = llist.iterator();
        while (iterator.hasNext()) {
            String next =  iterator.next();
            System.out.println(next);
        }

        System.out.println("============================");

        Vector<String> vector = new Vector<>();
        vector.add("hello,Vector");
        vector.add(null);
        vector.add(null);
        for (int i = 0; i < vector.size(); i++) {
            System.out.println(vector.get(i));
        }

        System.out.println("============================");

        HashSet<String> hashSet = new HashSet<>();
        hashSet.add("hello,HashSet"); //无序,值唯一,可放null
        hashSet.add(null);
        hashSet.add(null);
        Iterator<String> iterator1 = hashSet.iterator();
        while (iterator1.hasNext()) {
            String next =  iterator1.next();
            System.out.println(next);
        }

        System.out.println("============================");

        LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();
        linkedHashSet.add("hello,LinkedHashSet"); //有序,值唯一,可放null
        linkedHashSet.add("hello,world");
        linkedHashSet.add(null);
        linkedHashSet.add(null);
        for (String s : linkedHashSet){
            System.out.println(s);
        }

        System.out.println("============================");

        TreeSet<String> treeSet = new TreeSet<>();
        treeSet.add("hello,TreeSet");  //有序,值唯一,不可以存null
        treeSet.add("hello,TreeSet22");
//        treeSet.add(null);
//        treeSet.add(null);
        for (String s : treeSet){
            System.out.println(s);
        }

        System.out.println("============================");

        HashMap<String,String> hashMap = new HashMap<>();
        hashMap.put("1","hello,HashMap"); //无序,key唯一,value不唯一,可存null
        hashMap.put(null,null);
        hashMap.put(null,"2");
        for (String s : hashMap.keySet()){
            System.out.println("key: "+s + " value: "+ hashMap.get(s));
        }

        System.out.println("============================");

        TreeMap<String,String> treeMap = new TreeMap<>();
        treeMap.put("1","hello,TreeMap");//有序,key唯一,value不唯一,key不可存null(存了会报错),value可存null
        treeMap.put("3","hello,TreeMap");
//        treeMap.put(null,null);
        treeMap.put("2",null);
        Set<String> strings = treeMap.keySet();
        Iterator<String> stringIterator = strings.iterator();
        while (stringIterator.hasNext()) {
            String next = stringIterator.next();
            System.out.println("key: "+next + " value: "+ treeMap.get(next));
        }

        System.out.println("============================");

        Hashtable<String,String> hashtable = new Hashtable<>();
        hashtable.put("1","hello,Hashtable");//无序,key唯一,value不唯一,不能放null
        hashtable.put("2","hello,Hashtable");
//        hashtable.put("null",null);
        for (String s : hashtable.keySet()){
            System.out.println("key: "+s + " value: "+ hashtable.get(s));
        }

    }
    }

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值