簡體   English   中英

編寫一個迭代 Map 的方法,查找包含值的 Object 條目,將此 Object 添加到新集合然后返回該集合

[英]Writing a method that itterates over a Map, looks for Object entries that contain a value, adds this Object to a new set then returns that set

我正在學習如何在 Java 中編碼,並為這個概念而苦苦掙扎。 我需要編寫一個采用 char 參數的方法,該參數存在於 map 中的對象中。

在遍歷 map 以找到這些對象后,它需要返回一個當前不存在的包含此 char 值的對象集作為新集。

以下是我當前的代碼,它沒有得到我想要的結果,我相信問題出在 if 語句中。 我在 object 和 map 上做了很多不同的equals()containsValue組合,似乎無法讓它返回 true。

public Set findObj(char aChar)
{
    Set<String> objSet = new HashSet();

    for (Object Obj: map1.values())
    {  
       if (map1.values().contains(aChar))
       {
           //if true add to objSet
       }
    }

    return objSet;
}

如果它有助於 Map 是

Map<String,Obj> map1= new HashMap<>();

Object 由 class 創建並包含 3 個變量,2 個字符串和一個是我試圖在 map 的每次迭代中找到的 char 值。

你是對的,問題主要出在你的 if 語句中,因為你正在迭代 map 中的對象,你應該檢查當前 object是否包含字符串而不是 map 是否包含它

public Set findObj(char aChar) {
    Set<String> objSet = new HashSet();
    for (Object c : map1.values()) {
        if (c.toString().indexOf(aChar) >= 0) {
            //if true add to objSet
        }
    }
    return objSet;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM