栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【JAVA 三键KEY 对应 VALUE,MAP】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【JAVA 三键KEY 对应 VALUE,MAP】

JAVA 三键KEY 对应 VALUE,MAP

package com.quickhot.utilities;

import java.util.ArrayList;
import java.util.concurrent.ConcurrentHashMap;


public final class TriKey {
    private X x;
    private Y y;
    private Z z;
    private ConcurrentHashMap> xList = new ConcurrentHashMap<>();
    private ConcurrentHashMap> yList = new ConcurrentHashMap<>();
    private ConcurrentHashMap> zList = new ConcurrentHashMap<>();

    public void put(X x,Y y,Z z,V v){
        ArrayList avialable = get(x,y,z);
        if (null != avialable){
            xList.get(x).removeAll(avialable);
            yList.get(y).removeAll(avialable);
            zList.get(z).removeAll(avialable);
        }
        if (xList.containsKey(x)){
            xList.get(x).add(v);
        } else {
            ArrayList xArrList = new ArrayList<>();
            xArrList.add(v);
            xList.put(x,xArrList);
        }

        if (yList.containsKey(y)){
            yList.get(y).add(v);
        } else {
            ArrayList yArrList = new ArrayList<>();
            yArrList.add(v);
            yList.put(y,yArrList);
        }

        if (zList.containsKey(z)){
            zList.get(z).add(v);
        } else {
            ArrayList zArrList = new ArrayList<>();
            zArrList.add(v);
            zList.put(z,zArrList);
        }
    }

    public ArrayList get(X x, Y y, Z z){
        ArrayList xs = xList.get(x);
        ArrayList ys = yList.get(y);
        ArrayList zs = zList.get(z);

        if(null==xs || null==ys || null==zs) return null;

        ArrayList result = new ArrayList<>(xs);
        result.retainAll(ys);
        result.retainAll(zs);
        return result;
    }

}

使用方法

    public void run(ApplicationArguments args) throws Exception {
        TriKey testTriKey = new TriKey();
        testTriKey.put(0,0,0,"坐标000");
        testTriKey.put(0,0,0,"第二坐标000");
        testTriKey.put(0,0,1d,"坐标001");
        testTriKey.put(0,"b",0,"坐标010");
        testTriKey.put(0,"b",0,"坐标010b");
        testTriKey.put(0,1,1,"坐标011");
        testTriKey.put(1,0,0,100);

        ArrayList value = testTriKey.get(0, "b", 0);
        logger.info(value.toString());

        ArrayList value1 = testTriKey.get(0, 1, 1);
        logger.info(value1.toString());

        ArrayList value2 = testTriKey.get(0, 0, 0);
        logger.info(value2.toString());
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877884.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号