首页 > 其他分享 >Map集合

Map集合

时间:2024-03-09 17:34:51浏览次数:18  
标签:Map map System put 集合 println out

HashMap(由键决定特点):无序、不重复、无索引
LinkedHashMap(由键决定特点):有序,不重复,无索引
TreeMap(由键决定特点):按照大小默认排序升序、不重复、无索引

常用方法

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
 * @author Pickle
 * @version V1.0
 * @date 2024/3/9 16:50
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);
        map.put("d", 4);
        map.put("a", 5);
        System.out.println(map);
        map.clear();
        System.out.println(map.isEmpty());
        map.put("a",1);
        map.put("b",2);
        map.put("c",3);
        map.put("d",4);
        System.out.println(map.get("a"));
        System.out.println(map.remove("a"));
        System.out.println(map);
        System.out.println(map.containsKey("b"));
        System.out.println(map.containsValue(3));
        //因为Map的键是无重复,所以放入set中是合理的
        final Set<String> strings = map.keySet();
        System.out.println(strings);
        //因为map的值是可以重复的,所以放到Collection中是合理的
        final Collection<Integer> values = map.values();
        System.out.println(values);
    }
}

Map的遍历

键找值
import java.util.*;
/**
 * @author Pickle
 * @version V1.0
 * @date 2024/3/9 16:50
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("a", 0);
        map.put("b", 1);
        map.put("c", 2);
        map.put("d", 3);
        map.put("e", 4);
        map.put("f", 5);
        map.put("g", 6);
        map.put("h", 7);
        final Set<String> keys = map.keySet();
        System.out.println(keys);   //[a, b, c, d, e, f, g, h]
        for (String key : keys){
            System.out.print(map.get(key)); //01234567
        }
    }
}
键值对
import java.util.*;
/**
 * @author Pickle
 * @version V1.0
 * @date 2024/3/9 16:50
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("a", 0);
        map.put("b", 1);
        map.put("c", 2);
        map.put("d", 3);
        map.put("e", 4);
        map.put("f", 5);
        map.put("g", 6);
        map.put("h", 7);
        for (Map.Entry<String, Integer> kv : map.entrySet()){
            System.out.print(kv.getKey()+ kv.getValue() + " ");     //a0 b1 c2 d3 e4 f5 g6 h7 
        }
    }
}
Lambda
import java.util.*;
import java.util.function.BiConsumer;

/**
 * @author Pickle
 * @version V1.0
 * @date 2024/3/9 16:50
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("a", 0);
        map.put("b", 1);
        map.put("c", 2);
        map.put("d", 3);
        map.put("e", 4);
        map.put("f", 5);
        map.put("g", 6);
        map.put("h", 7);
//        map.forEach(new BiConsumer<String, Integer>() {
//            @Override
//            public void accept(String s, Integer integer) {
//                System.out.print(s + " " + integer + "      ");     //a 0      b 1      c 2      d 3      e 4      f 5      g 6      h 7
//            }
//        });

        map.forEach((k,v)->{
            System.out.print(k + " " + v  + "    ");
        });
    }
}

HashMap

底层同HashSet,为哈希表(数组+链表+红黑树(Java8))

LinkedHashMap

底层同LinkedHashSet

TreeMap

底层同TreeMap

标签:Map,map,System,put,集合,println,out
From: https://www.cnblogs.com/poteitoutou/p/18062997

相关文章

  • java List<HashMap<String,Object>> 遍历修改
    List<HashMap<String,Object>>DataSource;inti=0;for(Map<String,Object>item:DataSource){for(Stringk:item.keySet()){if(k.equals("input_date")){//此句为判断条件可去掉Objectb=item.get(k);......
  • P4139 上帝与集合的正确用法 题解
    传送门我觉得这题最有意思的其实是"最终会固定为一个数"这个结论。扩展欧拉定理:\(a^b\bmodp\),当\(b\ge\varphi(p)\)时,\(a^b\equiva^{b\bmod\varphi(p)+\varphi(p)}\pmodp\)。所以\(2^{2^{2^{\cdots}}}\)可以递归求解。边界条件\(p=1\)。复杂度如何保证?其实就是......
  • TreeMap练习
    TreeMap练习1."aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)packagecom.shujia.day14;importjava.util.Map;importjava.util.Set;importjava.util.TreeMap;publicclassTreeMapTest1{publicstaticvoidmain(String[]arg......
  • HashMap
    HashMapMap集合继承体系:1、Map集合中的元素是一个键值对2、一个键对应一个值,键不允许重复,键是唯一的3、值可以发生重复子类:HashMap<K,V>成员方法1:Vremove(Objectkey)voidclear()booleancontainsKey(Obj......
  • 前端面试题集合
    小程序面试题小程序的双向绑定this.setData({})小程序的自适应rpx小程序在页面中怎么样传递数据(1).全局传递app.jsglobalData(2).跳转页面的传参wx.navigateTo 和 wx.redirectTo在跳转后的页面onload的option小程序的生命周期onLoad 页面加载时触发。一个页......
  • HashMap对value的遍历
    1、Iterator遍历 Map<Integer,String>map=newHashMap<>();    Iterator<String>iterator=map.values().iterator();    while(iterator.hasNext()){      Stringvalues=iterator.next();    } 2、直接循环HashMap<Integ......
  • 集合常见的面试题
    集合常见的面试题1、你在开发种常用的集合有哪些?如果没有特殊要求,且元素是单列元素的话,使用ArrayList居多,如果是键值对元素的话,默认使用HashMap居多其他的集合根据查询或者增删的需求,或者线程安全或不安全来选择。2、HashMap和Hashtable的区别共同点:都是实现了Map接口的实现......
  • (笔记)Linux信号(signal) 机制和信号量(semaphore)机制的区别
     字面上相似,但是本质上存在巨大的差别! 一、Linux信号(signal)机制signal,又简称为信号(软中断信号)用来通知进程发生了异步事件。原理:一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来......
  • 什么是ConcurrentHashMap?不同JDK下ConcurrentHashMap的区别?
    什么是ConcurrentHashMap?不同JDK下ConcurrentHashMap的区别?  一、HashMap线程安全  我们知道,在并发情况下,使用HashMap会有线程安全的问题,那么如何避免呢?  想要避免Hashmap的线程安全问题有很多办法,比如改用HashTable或者Collections.synchronizedMap  但是,这两者......
  • 实体类与数据库的直接交互问题,DTO,AutoMapper的使用
    实体类、DTO与数据库交互的最佳实践实体类与数据库的直接交互问题在软件开发中,实体类通常被设计为反映业务域的数据模型。这些实体类可能包含以下元素:特性(Attributes):用于定义实体属性的额外信息,比如数据验证规则或ORM(对象关系映射)框架的映射信息。继承关系:实体之间可能存......