Java 如何实现ArrayList的中值拆分
我试图返回一个列中位数以上的值的数组列表。例如,我有一个对象列表,如:Java 如何实现ArrayList的中值拆分,java,arraylist,Java,Arraylist,我试图返回一个列中位数以上的值的数组列表。例如,我有一个对象列表,如: List<ObjectX> where Object X has a value v such that v=25. Object X has a value v such that v=15. Object X has a value v such that v=5. Object X has a value v such that v=35. 列出 对象X的值为v,因此v=25。 对象X的值为v,因此v=
List<ObjectX> where
Object X has a value v such that v=25.
Object X has a value v such that v=15.
Object X has a value v such that v=5.
Object X has a value v such that v=35.
列出
对象X的值为v,因此v=25。
对象X的值为v,因此v=15。
对象X的值为v,因此v=5。
对象X的值为v,因此v=35。
我的尝试:
public static ArrayList<ObjectX> medianSplit(ArrayList<ObjectX> data,boolean lowerHaf){
Collections.sort(data);
return data.subset(0,data.size()/2);
}
公共静态ArrayList medianSplit(ArrayList数据,布尔值lowerHaf){
收集、分类(数据);
返回data.subset(0,data.size()/2);
}
这不是一个学校项目,我可以使用任何代码,我的尝试是基于另一篇SO帖子。这似乎可以使用
使用子列表(0,N)创建子列表,N是独占的 这不会将项目复制到新列表,但会返回现有列表上的列表视图 这应该可以解决这个问题:
data.subList(0, data.size() / 2);
以下是Java8的排序
data.sort(Comparator.comparing(a -> a.v));
然后你就可以回来了
Arrays.copyOfRange(data, 0, data.size()/2);
什么专栏?我只看到一排,结果如何?什么不适合你?你做了什么调试?布尔值的用途是什么?
data.sort(Comparator.comparing(a -> a.v));
Arrays.copyOfRange(data, 0, data.size()/2);