[英]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.