java集合框架复习----(4)Map、List、set

简介: 这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。

文章目录

  • 五、Map集合【重要】
    • 1、hashMap
  • 六、Collections工具类
  • 总结
    • 集合的概念
    • List集合
    • set集合:
    • Map集合
    • Collection

五、Map集合【重要】

在这里插入图片描述
特点:

  • 用于存储任意键值对(k-v)
  • key不能重复,唯一。无序、无下标
  • value可以重复。无序、无下标

1、hashMap

存储结构:哈希表(数组+链表+红黑树)
方法:

  • put(k,v);存入
  • get(k);取值
  • containsKey();判断是否包含key
  • containsValue();判断 是否包含value
  • entrySet();返回映射关系中包含的映射视图
  • keySet();返回映射关系中包含的键的映射视图
package com.zheng.demo4;

import javax.lang.model.element.NestingKind;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MyMap {
    public static void main(String[] args) {

        //1、创建集合
        Map<String, String> map = new HashMap<>();

        //2、塞入值
        map.put("A", "我是A");
        map.put("B", "我是B");
        map.put("C", "我是C");
        map.put("D", "我是D");

        //判断
        System.out.println(map.containsKey("A"));
        System.out.println(map.containsValue("我是C"));

        System.out.println("map集合大小:" + map.size());
        System.out.println("打印:" + map.toString());

        //遍历1、使用keyset
        System.out.println("=======使用keyset=======");
        Set<String> set = map.keySet();
        for (String s : set) {
            System.out.println(s + "=======" + map.get(s));

        }

        System.out.println("=======使用entryset=======");

        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            System.out.println(entry.getKey() + "========" + entry.getValue());

        }

        //简化
        System.out.println("+===简化====+");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + "========" + entry.getValue());

        }


    }
}

在这里插入图片描述
在这里插入图片描述
jdk1.8后当链表长度大于8,转化为红黑树存储
jdk1.8后,当链表长度小于6,转化为链表存储

map集合的实现类

  • HashMap
    jdk1.2版本,线程不安全,运行快;允许null为key或者value
  • Hashtable
    jdk1.0版本,线程安全,运行慢,不允许null为key或者value
  • properties
    Hashtable的子类,使用String作为key或者value.通常用于配置文件的读取

六、Collections工具类

package com.zheng.demo5;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class MyCollection {
public static void main(String[] args) {
List arrayList = new ArrayList();
arrayList.add(4);
arrayList.add(1);
arrayList.add(5);
arrayList.add(3);
arrayList.add(6);
arrayList.add(2);

    System.out.println(arrayList.toString());
    System.out.println("调用排序工具类");
    //调用工具类排序
    Collections.sort(arrayList);
    System.out.println(arrayList.toString());

}

}

在这里插入图片描述

总结

集合的概念

对象的容器,和数组相似,定义了多个对象进行操作的常用方法

List集合

有序、有下标、元素可以重复(ArrayList,LinkedList,Vector)

set集合:

无序、无下标、元素不可重复(HashSet,TreeSet)

Map集合

存储一对数据,无序,无下标,键不可重复,值可以重复(HashMap,HashTable,TreeMap)

Collection

s:

  • 集合工具类,定义了除存取以外的集合常用方法
相关文章
|
5月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
327 100
|
5月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
346 101
|
5月前
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
4月前
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
146 7
|
7月前
|
Oracle Java 关系型数据库
掌握Java Stream API:高效集合处理的利器
掌握Java Stream API:高效集合处理的利器
430 80
|
7月前
|
安全 Java API
Java 8 Stream API:高效集合处理的利器
Java 8 Stream API:高效集合处理的利器
340 83
|
6月前
|
存储 缓存 安全
Java集合框架(二):Set接口与哈希表原理
本文深入解析Java中Set集合的工作原理及其实现机制,涵盖HashSet、LinkedHashSet和TreeSet三大实现类。从Set接口的特性出发,对比List理解去重机制,并详解哈希表原理、hashCode与equals方法的作用。进一步剖析HashSet的底层HashMap实现、LinkedHashSet的双向链表维护顺序特性,以及TreeSet基于红黑树的排序功能。文章还包含性能对比、自定义对象去重、集合运算实战和线程安全方案,帮助读者全面掌握Set的应用与选择策略。
436 23
|
5月前
|
存储 Java Go
对比Java学习Go——函数、集合和OOP
Go语言的函数支持声明与调用,具备多返回值、命名返回值等特性,结合`func`关键字与类型后置语法,使函数定义简洁直观。函数可作为一等公民传递、赋值或作为参数,支持匿名函数与闭包。Go通过组合与接口实现面向对象编程,结构体定义数据,方法定义行为,接口实现多态,体现了Go语言的简洁与高效设计。
|
6月前
|
安全 Java 开发者
Java集合框架:详解Deque接口的栈操作方法全集
理解和掌握这些方法对于实现像浏览器后退功能这样的栈操作来说至关重要,它们能够帮助开发者编写既高效又稳定的应用程序。此外,在多线程环境中想保证线程安全,可以考虑使用ConcurrentLinkedDeque,它是Deque的线程安全版本,尽管它并未直接实现栈操作的方法,但是Deque的接口方法可以相对应地使用。
363 12
|
6月前
|
存储 缓存 安全
Java集合框架(三):Map体系与ConcurrentHashMap
本文深入解析Java中Map接口体系及其实现类,包括HashMap、ConcurrentHashMap等的工作原理与线程安全机制。内容涵盖哈希冲突解决、扩容策略、并发优化,以及不同Map实现的适用场景,助你掌握高并发编程核心技巧。