说我有两个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]
?请帮帮我。我想到了比较器和对象,但几乎一无所知。
您应该以某种方式将字段和字段 关联
到一个类中,然后获得该特定类的实例列表。在此类中,提供一种检查数值的方法。如果您对实例进行排序,则名称字段也将按照您想要的顺序排列。name``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 =>一个2 =>两个3 =>三个4 =>四个
我的情况是这样的:我有两个带有不同类型对象的arraylists。每个对象都有一个字段名和一个字段日期ArrayList事件、ArrayList事物。我按名称对arraylists进行排序,如果名称相同,则按日期进行排序。 假设ArrayList1具有以下对象:event1 01.12、event1 05.12、event2 04.03、event3 05.05 我如何迭代两个arraylists
问题内容: 在我的作业中,第三步是调用方法merge来合并list1中的两个列表,以便list1 保持排序。 我编写了代码,但效果不佳,输出显示错误,因为排序很重要 问题答案: 假设两个列表都已排序,则只需要一个循环: 如果未排序,则需要两个循环:
问题内容: 我有两个数组列表,声明为: 这两个字段都完全包含“值的相同”,实际上在自然界中是对应的。 我知道我可以遍历这样的循环之一: 但是,我想同时遍历两个列表。我知道它们的尺寸完全相同。我怎么做? 问题答案: 您可以使用:
我有一个我正在制作的纸牌游戏的高分数组列表。对于这个arraylist可以存储的分数数量需要有一个有限的限制,系统的用户可以定义这个限制(假设现在是10个)。arraylist中的对象中的字段是玩家的名称(字符串)、他们的分数(int)和玩家的(几乎)唯一的ID(Long,System.CurrentTimeMillis())。arraylist应该按分数排序,其中分数最低的是最好的。但是,如果a
我有一个Arraylist,我想按两个属性对ArrayList进行排序1。按名称(字母顺序)2。按自定义键 更多解释-: '