Java 对“list”类型的列表进行排序<;Iterable<;对象>&燃气轮机`
我有一个类型为Java 对“list”类型的列表进行排序<;Iterable<;对象>&燃气轮机`,java,collections,interface,comparable,iterable,Java,Collections,Interface,Comparable,Iterable,我有一个类型为list的列表,在某些情况下,集合中的对象也是可比的 这意味着在某些情况下,它是一个包含许多类型a的对象的列表,这些类型a的对象不可比,而在另一些情况下,它包含许多类型B的对象,这些类型B的对象可比。当我有一个类型为B的对象列表时,我希望能够对它们进行排序 当列表中的所有对象都是可比较的时,我需要使用集合.sort()或类似的方法对它们进行排序。Java不允许我强制转换整个列表,也不能强制转换单个元素,因为它们可能无法实现Comparable接口。附近有工作吗 如果有用,以下是我的
list
的列表,在某些情况下,集合中的对象也是可比的
这意味着在某些情况下,它是一个包含许多类型a的对象的列表,这些类型a的对象不可比,而在另一些情况下,它包含许多类型B的对象,这些类型B的对象可比。当我有一个类型为B的对象列表时,我希望能够对它们进行排序
当列表中的所有对象都是可比较的时,我需要使用集合.sort()或类似的方法对它们进行排序。Java不允许我强制转换整个列表,也不能强制转换单个元素,因为它们可能无法实现Comparable
接口。附近有工作吗
如果有用,以下是我的代码:
Iterable<Object> iterable;
List<Iterable<Object>> valori = new ArrayList<Iterable<Object>>();
Integer valoriLetti = 0;
iterable = new ArrayList<Object>();
while (iterable != null && valoriLetti < numero) {
// Object object = beanReader.read();
try {
iterable = (Iterable<Object>) beanReader.read();
} catch (InvalidRecordException ex) {
log.error(this.toString());
log.error(ex);
log.error(ex.getStackTrace());
}
if (iterable != null) {
((IEntityAmount) iterable).moltiplicaImporti();
((IEntityAmount) iterable).troncaImporti();
valori.add(iterable);
valoriLetti += 1;
// if (iterable.iterator().hasNext()) {
// valori.add(leggiValori(iterable));
// valoriLetti += 1;
// }
} else {
break;
}
}
Iterable;
List valori=new ArrayList();
整数valoriLetti=0;
iterable=新的ArrayList();
while(iterable!=null&&valoriLetti
此答案解释了如何投射集合此答案解释了如何投射集合您希望对象如何排序?除非所有元素都具有可比性,否则这根本没有意义。你到底想做什么?如果我们知道您真正的用例是什么,我们可能会帮助您找出一些有意义的东西。@LouisWasserman抱歉,我没有解释我自己。在某些情况下,列表包含许多不可比较的A类型对象。在其他情况下,该列表包含许多可比较的B类对象。@Keppil我不确定我是否理解您的问题。我想根据我已经实现的compareTo()
方法对它们进行排序。@Vitalij:在编辑之前,您的问题说明它们可能无法实现Comparable,因此我提出了问题。我知道你找到了你想要的答案,所以一切都很好。你希望你的对象如何排序?除非所有元素都是可比较的,否则这根本没有意义。你到底想做什么?如果我们知道您真正的用例是什么,我们可能会帮助您找出一些有意义的东西。@LouisWasserman抱歉,我没有解释我自己。在某些情况下,列表包含许多不可比较的A类型对象。在其他情况下,该列表包含许多可比较的B类对象。@Keppil我不确定我是否理解您的问题。我想根据我已经实现的compareTo()
方法对它们进行排序。@Vitalij:在编辑之前,您的问题说明它们可能无法实现Comparable,因此我提出了问题。我知道你找到了你想要的答案,所以一切都很好。