kor*_*nos -1 java android arraylist
我有这个 ArrayList
public ArrayList<HashMap<String, String>> xmlFileNames = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
HashMap<String, String> comparemap2 = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
我想要的是:我想要ArrayList中的所有Items并希望将它们放入HashMap我的HashMap看起来像:
核心价值
job_id 032014091029309130921.xml
job_id 201302149014021492929.xml
job_id 203921904901920952099.xml
编辑: 稍后我想将此地图与现有地图进行比较:
Properties properties = new Properties();
try {
properties.load(openFileInput("comparexml.kx_todo"));
} catch (IOException e) {
e.printStackTrace();
}
for (String key : properties.stringPropertyNames()) {
compareMap.put(key, properties.get(key).toString());
}
HashMap<String, String> oldCompareMap = new HashMap<>();
for (HashMap key : xmlFileNames) {
oldCompareMap.putAll(key);
}
isEqualMaps(oldCompareMap, compareMap);
Run Code Online (Sandbox Code Playgroud)
我只想比较,如果文件名存在于compareMap.如果没有,请将其添加到xmlFileName地图中
我已经在StackOverFlow中查找了,我如何将ArrayList转换为HashMap.但是其他线程会将数据类型视为Item或Product.
我希望你能帮帮我!
亲切的问候
鉴于...
public ArrayList<HashMap<String, String>> xmlFileNames = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
然后这样的事情应该做到这一点.
HashMap<String, String> nhm = new HashMap<>();
for (HashMap xmlFileHm : xmlFileNames ) {
nhm.putAll(xmlFileHm);
}
Run Code Online (Sandbox Code Playgroud)
但请注意,如果您的哈希图中有重复的密钥,它们将被覆盖.
您还应该考虑对接口进行编码.查看Map和List,而不是将集合键入实现(ArrayList和HashMap).看看这个非常有趣的帖子"编程到界面"是什么意思?
根据您尝试做的事情,您可以考虑使用MultiMap,因为这可能会更好地服务于您的目的
编辑更新问题后...
使用一个键和多个值,多图在这里会更好.虽然可以说密钥永远不会改变,但您可以将值存储在列表中.对于多功能放大器,您可以使用Google的番石榴库或自己动手做.例如(没有检查编译错误,因为我从头开始这样做)
Map<String, List<String>> m = new HashMap<>();
if (m.containsKey("key")) {
m.get("key").add("new value");
}
else {
List<String> l = new ArrayList<>();
l.add("new value");
m.put("key", l);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12585 次 |
| 最近记录: |