Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
帮助在Java中使用递归_Java_Recursion - Fatal编程技术网

帮助在Java中使用递归

帮助在Java中使用递归,java,recursion,Java,Recursion,我有一个班级小组。在类中,我有两个字段,IdGroupGroupIdGroupGroup。组可能是其他组的一部分。我的类组在HashMap中定义;键是IdGroupGroup,值是idGroup。我想在地图上搜索特定的idGroup;我可以用递归来做这个吗 class Group { int idGroupe String word } HashMap<Integer,Integer> GroupeGroupe = new HashMap<Integer,I

我有一个班级
小组
。在类中,我有两个字段,
IdGroupGroup
IdGroupGroup
。组可能是其他组的一部分。我的类
HashMap
中定义;键是
IdGroupGroup
,值是
idGroup
。我想在地图上搜索特定的
idGroup
;我可以用递归来做这个吗

class Group
{

    int idGroupe
    String word
}

HashMap<Integer,Integer> GroupeGroupe = new HashMap<Integer,Integer>();
GroupeGroupe.put(idGroupeGroupe, idGroupe)
类组
{
int-idGroupe
字符串字
}
HashMap groupGroup=新HashMap();
GroupeGroupe.put(idGroupeGroupe,idGroupe)

对于一个模糊的问题,我不得不猜测很多,但也许你在寻找这样的东西:

import java.util.*;

public class Test {

    static Map<Integer, Integer> groups = new HashMap<Integer, Integer>();

    public static void main(String... args) {
        groups.put(1, 2);
        groups.put(2, 3);
        groups.put(2, 4);
        groups.put(4, 5);
        System.out.println(searchFor(1, 5));
    }

    private static String searchFor(int from, int target) {

        // Target found?
        if (from == target) return "" + target;

        // Dead end?
        if (!groups.containsKey(from)) return null;

        // Recurse and try to find it from here.
        String path = searchFor(groups.get(from), target);
        return path == null ? null : from + " -> " + path;
    }
}

我不确定我是否理解你的问题,但我会尽力回答。 如果您有一个带有条目的java HashMap,我是否正确地理解了您? 在这种情况下,每个idGroupGroup(java api)只有一个条目:

将指定的值与 此映射中指定的键。如果 映射以前包含的映射 键,则替换旧值

如果这很好,您只想对所有可以使用的元素进行递归:

public Collection<V> values()
公共集合值()
返回的集合视图 此映射中包含的值。这个 集合由地图支持,所以 地图的更改将反映在中 收藏,反之亦然。如果 在迭代过程中修改映射 收集工作正在进行中 (除了通过迭代器自己的 删除操作),然后返回 迭代是未定义的。这个 集合支持元素移除, 这将删除相应的 从地图映射,通过 迭代器.remove,集合.remove, 移除、保留和清除 操作。它不支持 添加或添加所有操作

看看:

干杯,
Jørgen

可以显示类的定义吗?如果要将
IdGroupGroup
映射到
idGroup
并且需要搜索
idGroup
,则可能使用了错误的数据结构class Group{int-idGroup int-IdGroupGroup}示例a组中有a组和B组,我可以添加另一组B,这不是您在上面给出
组定义时发布的。你能用所有相关代码编辑你的问题吗(两个类,以及你的
HashMap
,等等)?只需搜索你地图示例的第一个元素(键)搜索1输出->1有2,2是键,有3,然后停止,因为3不是地图的键
hello world ! 
   public V put(K key,V value)
public Collection<V> values()