我正在使用Autocompletetextview,所以我想显示重复的名称...该名称来自服务器...我尝试了一些下面的Java代码示例,无法正常工作...
public class EmptyActivity extends AppCompatActivity {
LinkedHashMap<String, ArrayList<String>> hashMap_searchresult = new LinkedHashMap<String, ArrayList<String>>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_empty);
hashMap_searchresult.clear();
hashMap_searchresult.put("a1",new ArrayList<String>(Arrays.asList("a","b","c","d")));
hashMap_searchresult.put("a1",new ArrayList<String>(Arrays.asList("e","f","g","h")));
for (Map.Entry<String, ArrayList<String>> entry : hashMap_searchresult.entrySet()) {
String key = entry.getKey();
ArrayList<String> value2222 = entry.getValue();
Log.e("checkstatus"," key " + key + " value : " + value2222.toString());
}
}
}
这是输出得到的
键:a1值:[e,f,g,h]
但是我希望在下面这样输出
key : a1 value : [a, b, c, d] key : a1 value : [e, f, g, h]
谁能告诉我该怎么用?
答案 0 :(得分:2)
这越来越难看,但是您可以查看列表清单的地图:
<div class="outer">
<div class="inner">
asdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasd
</div>
</div>
答案 1 :(得分:1)
您可能可以尝试以下收集类型:
LinkedHashMap<String, ArrayList<ArrayList<String>>> hashMap_searchresult = new LinkedHashMap<String, ArrayList<ArrayList<String>>>();
这意味着您可以将字符串列表的列表创建为值,从而可以在此处放置多个列表。但是在处理此类数据时(尤其是在初始化列表时),您需要小心。
Set<String> keySet = hashMap_searchresult.keySet();
Iterator<String> iterator = keySet.iterator();
while(iterator.hasNext()) {
String key = iterator.next();
ArrayList<ArrayList<String>> outerList = hashMap_searchresult.get(key);
for(int index=0;index<outerList.size();index++) {
ArrayList<String> innerList = outerList.get(index);
Log.e("checkstatus"," key " + key + " value : " + innerList.toString());
}
}
答案 2 :(得分:0)
要具有多个列表作为同一个键的值,您需要将它们放在某种容器中,例如另一个列表。这意味着您将具有以下地图类型:
Map<String, List<List<String>>>
现在您可以添加和删除特定键的列表。但是请记住,在使用每个键之前,必须先为每个键创建一个列表。
答案 3 :(得分:0)
您可以尝试使用Google MultiMap简化代码。 参考:https://google.github.io/guava/releases/19.0/api/docs/com/google/common/collect/Multimap.html