java三种集合类

List

ArrayList

  • 支持的数据类型:引用类型
  • 数据排列:有序
  • 数据重复性:可重复
public static void main(String[] args) {
        // ArrayList<E> list = new ArrayList<>();   E为包装类型,指定该集合的类型
        // boolean : Boolean
        // byte : Byte
        // short : Short
        // int : Integer
        // long : Long
        // float : Float
        // double : Double
        //char : Character
        // 创建List对象
        ArrayList<String> list = new ArrayList<String>();
        // 添加数据
        list.add("第一个字符串");
        list.add("第二个字符串");
        list.add("第三个字符串");
        System.out.println(list);
        System.out.println(list.size());
        // 移除数据
        list.remove(0);     // 根据索引来删除数据
        System.out.println(list);
        boolean isSucceed = list.remove("第四个字符串");  // 根据值来删除数据,返回布尔类型
        System.out.println(isSucceed);
        // 获取集合大小
        System.out.println(list.size());
        // 获取数据
        System.out.println(list.get(0));
        // 判空函数
        System.out.println(list.isEmpty());
        // 判断包含某数据
        System.out.println(list.contains("第二个字符串"));
        // 修改某位置的数据
        list.set(0,"第一个字符串");
        System.out.println(list);
        // 遍历集合
        for (int i=0 ; i< list.size();i++){
            System.out.println("遍历结果:"+list.get(i));
        }
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            System.out.println("遍历迭代器:"+iterator.next());
        }
        // 增强循环
        list.add("哈哈哈哈");
        list.add("嘿嘿嘿嘿");
        for(String name : list){
            System.out.println("增强遍历结果:"+name);
        }
    }

Map

HashMap

  • 支持的数据类型:引用类型
  • 以键值对形式来保存数据
  • 键值不可以重复,重复时后者键值对覆盖前者
public static void main(String[] args){
    HashMap<String,String> hashMap = new HashMap<String,String>();
    // 给hashmap添加数据
    hashMap.put("name","张三");
    hashMap.put("age","18");
    hashMap.put("sex","男");
    // 获取数据
    System.out.println("name :"+hashMap.get("name"));
    System.out.println("age :"+hashMap.get("age"));
    System.out.println("sex :"+hashMap.get("sex"));
    // 获取 hashmap 大小
    System.out.println(hashMap.size());
    // 移除某个数据
    String bl = hashMap.remove("name"); // 移除此key和value,并返回此key对应的value
    System.out.println(bl);
    // 判断 hashmap 中是否包含某个key
    System.out.println(hashMap.containsKey("name"));
    System.out.println(hashMap.containsKey("age"));
    // 判断 hashmap 中是否包含某个value
    System.out.println(hashMap.containsValue("男"));
    // 一次性拿到所有的 key,并遍历
    Set<String> keys = hashMap.keySet();   // 返回的是一个集合
    for (String key : keys){
        System.out.println("遍历key="+key+",遍历value="+hashMap.get(key));
    }
    // 一次性拿到所有的 values,并遍历
    Collection<String> values = hashMap.values();
    for (String value : values){
        System.out.println("value="+value);
    }
    // Entry 就是代表一个 key,value 键值对
    // 遍历 hashMap
    Set<Map.Entry<String,String>> entries = hashMap.entrySet();
    for (Map.Entry<String,String> entry : entries){
        System.out.println("key="+entry.getKey()+",value="+entry.getValue());
    }
    // 删除 hashMap 所有数据
    hashMap.clear();
}

Set

HashSet

  • 支持的数据类型:引用类型
  • 数据排列:无序
  • 数据重复性:不 可重复
  • 为什么HashSet 有去重的功能:因为实现了这样一个算法,在添加数据时会判断两个数据是否一样,通过比较两个数据的hashcode值。
public static void main(String[] args) {
    // 创建一个 HashSet
    HashSet<String> hashSet = new HashSet<String>();
    System.out.println(hashSet.isEmpty());
    hashSet.add("张三");
    hashSet.add("李四");
    hashSet.add("王五");
    System.out.println(hashSet);
    System.out.println(hashSet.size());
    System.out.println(hashSet.isEmpty());
    System.out.println(hashSet.contains("李四"));
    // HashSet 是无序的,不能通过索引删除数据
    boolean isSucceed = hashSet.remove("陈二");
    System.out.println(isSucceed);
    // 遍历 HashSet 集合
    Iterator<String> iterator = hashSet.iterator(); //获取迭代器
    while (iterator.hasNext()){
        System.out.println("遍历HashSet:"+iterator.next());
    }
    for (String name : hashSet){
        System.out.println("遍历hashset:"+name);
    }
    // 转化为 Array数组,并遍历
    Object[] ahashSet = hashSet.toArray();
    for (Object object : ahashSet){
        System.out.println(object);
    }
    // 清空 HashSet 集合
    hashSet.clear();
    System.out.println("清空后:"+hashSet.size());
}