美文网首页
在多层嵌套Map中查找值匹配的路径

在多层嵌套Map中查找值匹配的路径

作者: 帕博雷克斯丢丢 | 来源:发表于2021-12-22 18:22 被阅读0次
package com.demos.practiceone.util;

import java.util.LinkedList;
import java.util.Map;
import java.util.Objects;

public class NestedMapFinder {

    private final LinkedList<Object> orderChain = new LinkedList<>();

    private boolean doesFindIt = false;

    public boolean isFound() {
        return this.doesFindIt;
    }

    public <T> LinkedList<?> find(Map<?, ?> map, T target) {
        for (Map.Entry<?, ?> e : map.entrySet()) {
            Object k = e.getKey();
            Object v = e.getValue();
            orderChain.add(k);
            if ((target == null && v == null) || Objects.equals(target, v)) {
                this.doesFindIt = true;
                break;
            } else {
                if (v instanceof Map<?, ?>) {
                    this.find((Map<?, ?>) v, target);
                } else {
                    orderChain.removeLast();
                }
            }
        }
        if (!this.doesFindIt && orderChain.size() != 0) {
            orderChain.removeLast();
        }
        return orderChain;
    }
}

相关文章

  • 在多层嵌套Map中查找值匹配的路径

  • Swift学习笔记十五之嵌套类型

    1、类型嵌套//可以在允许类型嵌套的类型中嵌套枚举、类、结构体,并且支持多层嵌套2、值类型的嵌套struct Ne...

  • Excel函数小记

    1,vlookup函数:(纵向数据匹配) vlookup(查找值,查找范围,查找列,1/0) 表示在‘查找范围’中...

  • xpath 用法

    在chrome中校验xpath路径 匹配包含某属性的所有的属性值//@lang 查找包含某些class的元素 fi...

  • Vue Router 嵌套路由

    实际生活中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层组件,...

  • 2、vue子路由

    实际生活中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层组件。...

  • vue全家桶(2.3)

    3.4.嵌套路由 实际生活中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对...

  • react+umi框架相关

    createContext Provider, Consumer多层组件嵌套传值的实现参考react.Fragme...

  • 服务器操作系统基础原理3—Linux2

    Linux文件和目录管理 find [路径] [参数]在硬盘中查找文件,速度较慢,必须精确匹配。 less 翻页阅...

  • Jquery 中map()方法的使用

    map()定义: map() 把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象。 ...

网友评论

      本文标题:在多层嵌套Map中查找值匹配的路径

      本文链接:https://www.haomeiwen.com/subject/mxtcqrtx.html