java – 同时对两个arrayLists进行排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 同时对两个arrayLists进行排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1169字,纯文字阅读大概需要2分钟。
内容图文
假设我有两个ArrayLists:
name: [Four, Three, One, Two]
num: [4, 3, 1, 2]
如果我这样做:Arrays.sort(num),那么我有:
name: [Four, Three, One, Two]
num: [1, 2, 3, 4]
有没有什么方法可以对num进行排序并将其反映在名称中,这样我最终可能会:
name: [One, Two, Three, Four]
num: [1, 2, 3, 4]
?请帮帮我.我想到了比较器和对象,但根本不知道它们.
解决方法:
您应该以某种方式将名称和num字段关联到一个类中,然后具有该特定类的实例列表.在此类中,提供compareTo()方法,该方法检查数值.如果对实例进行排序,那么名称字段也将按您所希望的顺序排列.
class Entity implements Comparable<Entity> {
String name;
int num;
Entity(String name, int num) {
this.name = name;
this.num = num;
}
@Override
public int compareTo(Entity o) {
if (this.num > o.num)
return 1;
else if (this.num < o.num)
return -1;
return 0;
}
}
测试代码可能是这样的:
public static void main(String[] args) {
List<Entity> entities = new ArrayList<Entity>();
entities.add(new Entity("One", 1));
entities.add(new Entity("Two", 2));
entities.add(new Entity("Three", 3));
entities.add(new Entity("Four", 4));
Collections.sort(entities);
for (Entity entity : entities)
System.out.print(entity.num + " => " + entity.name + " ");
}
输出:
1 => One 2 => Two 3 => Three 4 => Four
内容总结
以上是互联网集市为您收集整理的java – 同时对两个arrayLists进行排序全部内容,希望文章能够帮你解决java – 同时对两个arrayLists进行排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。