为了账号安全,请及时绑定邮箱和手机立即绑定

Java 集合:根据单独的键列表对值列表进行排序

Java 集合:根据单独的键列表对值列表进行排序

吃鸡游戏 2022-07-06 19:07:07
我有两个清单。键列表中的每个键对应于值列表中的一个值。假设这两个列表大小相同。我需要根据键列表对两个列表进行排序。我尝试了以下方法,但显然它不起作用,因为它会弄乱键值关联。除了编写自己的排序实现之外,我只是不知道还能做什么。// Would mess up the key-value associations    public void sort() {        Collections.sort(this.keys);        Collections.sort(this.values);    }    /* Example:         this.keys = (2, 1, 4)        this.values = ("value for 2", "value for 1", "value for 4")        this.sort()        this.keys = (1, 2, 4)        this.values = ("value for 1", "value for 2", "value for 4") */有没有一种简单的方法可以做到这一点?我宁愿坚持使用内置的排序功能,而不是自己编写。我也不能改变底层的数据结构。
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

如果如您所说,您需要保留两个列表,则可以尝试以下操作:


// Create a map that orders its data.

Map<Integer, String> tmp = new TreeMap<>();


// Put your data into this structure and let it sort the data for you.

for (int i=0; i<keys.size(); i++) {

    tmp.put(keys.get(i), values.get(i));

}


// Clear your original lists.

keys.clear()

values.clear();


// Put the data back into your lists - but sorted this time.

for (Integer key : tmp.keySet()) {

    keys.add(key);

    values.add(tmp.get(key));

}


查看完整回答
反对 回复 2022-07-06
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号