java集合类(一)集合体系概述

一.整体概述

java集合体系分为两大部分:CollectionMap
-Collection接口下常见的子接口有ListSet接口。
-List接口下有ArrayList、LinkedList、Vector等实现类;
-Set接口下有HashSet、LinkedHashSet、TreeSet等实现类;
-而Map接口下有HashMap、TreeMap、Hashtable等实现类。

具体可参见JavaSE帮助文档

二.Collection接口

1.List

特点:元素有序且可重复
-ArrayList:底层结构是数组,查询快,增删慢。同时线程不安全,但效率高。
-LinkedList:底层结构是链表,查询慢,增删快。线程不安全,效率高。
-Vector:底层结构也是数组,查询快,增删慢。但线程安全,效率低。

2.Set

-HashSet:底层结构是哈希表,元素无序且唯一.
-LinkedHashSet:底层结构是链表和哈希表,元素有序且唯一。
-TreeSet:底层结构为红黑树,元素有序且唯一。

三.Map接口

特点:以键值对的形式对元素进行存储,键不能重复,但值可以。同时元素无序
Map集合的遍历:
1.通过map.values()方法遍历得到所有的值。
2.将Map集合中的键通过map.keySet()方法存入Set集合当中,再遍历该Set集合以get()方法获取值。
3.通过entrySet()方法获取包含Map映射关系的Set集合,接着对其迭代调用getKey()getValue()方法获取对应的键和值。
测试代码:

package package04_collection;

import java.util.HashMap;
import java.util.Map;

public class mapTest {
    
    
    public static void main(String[] args) {
    
    
        Map<String,String>map = new HashMap<String, String>();
        map.put("per01","赵");
        map.put("per02","钱");
        map.put("per03","孙");
        map.put("per04","李");
        //1.values方法遍历
        for (String value : map.values()) {
    
    
            System.out.println("value:"+value);
        }
        //2.keySet方法遍历
        for (String s : map.keySet()) {
    
    
            System.out.println("key:"+s+"\tvalue:"+map.get(s));
        }
        //3.entrySet方法遍历
        for (Map.Entry<String, String> entry : map.entrySet()) {
    
    
            System.out.println("key:"+entry.getKey()+"\tvalue:"+entry.getValue());
        }
    }
}

效果截图:
在这里插入图片描述
注意:TreeMap实现类是有序的,不允许键为null;Hashtable是线程安全的,同时效率较低,不允许null值;而HashMap线程不安全,键和值都允许null值。

猜你喜欢

转载自blog.csdn.net/m0_46550452/article/details/107236030