[英]How to find keys in the HashMap<String, LinkedList<String>> which have one or more similar values in LinkedList<String>
[英]How do I obtain the values of LinkedList<HashMap<String,String>>?
我有這個XMLParser:
public class XMLParser {
private URL url;
public XMLParser(String url){
try {
this.url = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public LinkedList<HashMap<String, String>> parse() {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
LinkedList<HashMap<String, String>> entries = new LinkedList<HashMap<String,String>>();
HashMap<String, String> entry;
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document dom = builder.parse(this.url.openConnection().getInputStream());
Element root = dom.getDocumentElement();
NodeList items = root.getElementsByTagName("item");
for (int i=0; i<items.getLength(); i++) {
entry = new HashMap<String, String>();
Node item = items.item(i);
NodeList properties = item.getChildNodes();
for (int j=0; j<properties.getLength(); j++) {
Node property = properties.item(j);
String name = property.getNodeName();
if (name.equalsIgnoreCase("title")) {
entry.put(CheckNewPost.DATA_TITLE, property.getFirstChild().getNodeValue());
} else if (name.equalsIgnoreCase("link")) {
entry.put(CheckNewPost.DATA_LINK, property.getFirstChild().getNodeValue());
}
}
entries.add(entry);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return entries;
}
}
問題是我不知道如何獲取LinkedList上添加的最后一個值並將其顯示在Toast上。 我嘗試了這個:
XMLParser par = new XMLParser(feedUrl);
HashMap<String, String> entry = par.parse().getLast();
String[] text = new String[] {entry.get(DATA_TITLE), entry.get(DATA_LINK)};
Toast t = Toast.makeText(getApplicationContext(), text[0], Toast.LENGTH_LONG);
t.show();
顯然,我沒有足夠的經驗,並且我對Map,HashMap等等一無所知。XMLParser不是我的。
要遍歷HashMap中的所有值,可以使用EntrySet:
for (Map.Entry<String, String> entry : hashMap.entrySet()) {
Log.i(TAG, "Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
並且僅獲取最后一個值,您可以嘗試以下操作:
hashMap.get(hashMap.size() - 1);
因此,該條目是HashMap,這意味着您需要從Map中獲取“名稱/值”對。 因此,對於map來說,有一個Named也稱為Key或(哈希索引),並且對於每個“ Key”都存在一個“值”,因此。
Map<String, String> entries = new HashMap<String, String>();
entries.put("Key1", "Value for Key 1");
entries.put("Key 2", "Key 2 value!");
entries.put("Key1", "Not the original value for sure!"); // replaced
然后您可以將其獲取為:
String val1 = entries.get("Key1"); // "Not the original value for sure!"
String val2 = entries.get("Key 2"); //"Key 2 value!"
並遍歷地圖,您將執行以下操作:
for (String key : entries.keySet()) {
String value = entries.get(key);
}
希望對您有所幫助。 您還可以通過Google搜索“ Java Map示例”了解更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.