小编Pil*_*_51的帖子

Java:同步排序多个ArrayLists或单个映射的ArrayList

我大约3个月前才开始学习Java,这是我在这里的第一篇文章,所以请耐心等待.

我有多个由解析的XML构建的ArrayLists,它们按顺序直接相互关联.稍后将数组放入单个映射的ArrayList(groupData)中,以使用SimpleAdapter读取,该SimpleAdapter在Android GUI中创建列表.

我想要做的是根据一个数组(arr_title)按字母顺序对列表进行排序,其他数组保持同步顺序.只要对最终显示的列表进行排序,排序就会发生在哪里并不重要.我希望最好在构建映射数组后对其进行排序.更简单或更容易理解代码,但不希望排序变得非常慢.我每个阵列有大约140个对象,但考虑到从网络中提取XML,这可能会扩展.

我花了好几个小时搜索谷歌并尝试了一些进展很少的事情.Collections.sort(arr_title)会根据我的需要对一个数组进行排序,但是其他数组不匹配,并且对其他数组执行相同的操作显然只是根据我的需要对它们进行单独排序.我注意到提到使用TreeMap类型和Comparator进行类似的排序,但在这种情况下无法弄清楚如何使用它们可能是因为这些示例没有提供足够大的图片供我理解.

下面的示例是创建单独数组后大多数事情发生的地方.

List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
Map<String, String> group;

int item = 0;
do {
    group = new HashMap<String, String>();
    group.put("title", arr_title.get(item));
    group.put("desc", arr_desc.get(item));
    group.put("num", Integer.toString(arr_num.get(item)));
    groupData.add(group);
    item++;
} while (item < arr_num.size());

SimpleAdapter adapter = new SimpleAdapter(this, groupData, android.R.layout.simple_list_item_2, new String[] {"title", "desc", "num"}, new int[]{android.R.id.text1, android.R.id.text2});
setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

java arrays sorting android

1
推荐指数
1
解决办法
4360
查看次数

标签 统计

android ×1

arrays ×1

java ×1

sorting ×1