zoukankan      html  css  js  c++  java
  • java中key-value数据有重复KEY如何存储

    在java程序开发中,一般采用MAP来存储key-value的数据,在特殊应用场景下,key会出现重复而且不能覆盖的情况,采用HashMap无法满足需求,而采用IdentityHashMap时,如果不通过遍历KEY的方式又无法获取到指定KEY的值,有没有什么其它好的方式来解决这样的数据存储呢?

    1. 一般方法

    Key-List实现方式如下:

    Map<Key, List<Value>> 

    2. 通过guava实现
    Guava是一种基于开源的Java库,Google Guava源于2007年的"Google Collections Library"。这个库是为了方便编码,并减少编码错误。这个库用于提供集合,缓存,支持原语句,并发性,常见注解,字符串处理,I/O和验证的实用方法。

    <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>28.1-jre</version>
    </dependency>

    当我们需要一个map中包含key为String类型,value为List类型的时候,以前我们是这样写的

    Map<String,List<Integer>> map = new HashMap<String,List<Integer>>();
    List<Integer> list = new ArrayList<Integer>();
    list.add(1);
    list.add(2);
    map.put("aa", list);
    System.out.println(map.get("aa"));//[1, 2]

    现在:

    Multimap<String,Integer> map = ArrayListMultimap.create();      
    map.put("aa", 1);
    map.put("aa", 2);
    System.out.println(map.get("aa"));  //[1, 2]
    
    
    原文链接:https://blog.csdn.net/zyxhangiian123456789/java/article/details/91967387
  • 相关阅读:
    maven打包部署到私服
    RedisUtil工具类
    使用Spring+Junit4进行测试
    SpringMVC + MyBatis + Mysql + Redis(作为二级缓存) 配置
    Spring缓存注解@Cache使用
    Spring集成Redis使用注解
    Redis入门学习
    对年轻技术员的告诫
    WebMagic写的网络爬虫
    Jquery学习笔记(6)--jquery中attr和prop的区别【精辟】
  • 原文地址:https://www.cnblogs.com/bbllw/p/12705864.html
Copyright © 2011-2022 走看看