如何以与对“名称”数组列表进行排序相同的方式对“路径”数组列表进行排序?

时间:2018-06-22 18:20:11

标签: java android

我有两个数组列表,它们的大小相同,分别命名为“ name”和“ path”,分别包含文件的名称和路径(这是通过使用搜索功能读取外部存储而获得的)。

现在,我已经按照不区分大小写的字母顺序对“名称”数组列表进行了排序,但是“路径”数组列表保持不变。

我想在列表视图中使用这些数组列表,但是问题是当我单击列表视图中的任何文件时,并且我们知道只有一个数组“名称”被排序,因此它们没有从中打开正确的文件相应的路径,因为“路径”数组列表仍然包含“名称”列表的旧顺序的路径。

那么,如何使“路径”数组列表与“名称”列表的顺序相同?为了使新名称列表与正确的路径匹配。

如果可能,有人可以通过Teamviewer帮助我吗?我无法在此处发布完整的代码,因为这是我的大学项目,希望大家都能理解。

2 个答案:

答案 0 :(得分:0)

我建议您使用TreeMap(它是HashMap的一种类型,从a-z排序),而不要使用2个数组列表。 代码看起来像这样:

private Map<String, String> namePathMap = new TreeMap<String, String>();

现在要添加一个具有以下名称的路径:

namePathMap.put("[name]", "[path]");

这将按键对HashMap进行排序。

如果要通过给定的mame获取路径,则必须编写:

namePathMap.get("[name]");

如果您现在需要遍历名称:

for(String key : namePathMap.keySet()){
  String value = namePathMap.get(key);
  //Do here what you want
}

如果您对Maps / HashMap有任何疑问,请随时问我^^
希望能对您有所帮助

答案 1 :(得分:0)

在您的示例中,使用name来获得path

这表示keyvalue类型的数据,其中使用key以获得其对应的value

因此,如果您希望对姓名进行排序,我建议您使用ArrayList,特别是Map,而不要使用两个单独的数据结构(您的两个TreeMap) 。 TreeMap将根据其自然顺序自动对键进行排序。


用法

要实例化TreeMap

Map<String, String> nameMap = new TreeMap<>();

要添加name键和path值对:

nameMap.put(name, path);

要从path获取name

nameMap.get(path);

有关更多文档,请查看:https://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html