所以我有一个名为Event的对象,它有变量。
private String id;
private int x;
private int y;
private int distance;
private ArrayList<Double> list;
列表变量包含一个双打列表,表示每个事件的票价列表。
我已经将列表从最低到最高排序,因此最低价格位于列表的顶部。我想要做的是创建一个1的子列表,这将是每个事件的最低价格。
我目前有一个事件列表,我可以为其创建一个5的子列表。
List<Event>resList = new ArrayList<>(unique1.subList(unique1.size() - 5, unique1.size()));
当我尝试创建双打列表的子列表时,它不会这样做。它没有给我任何错误,但只是不创建列表并返回列表不变。 这就是我的尝试。
public List<Event> finalTickets(List<Event> list){
for(int i =0; i < list.size();i++){
ArrayList<Double> onePrice = new ArrayList<Double>(list.get(i).getList().
subList(list.get(i).getList().size()-1, list.get(i).getList().size()));
}
return list;
}
任何帮助都会很棒。
答案 0 :(得分:1)
您没有更改传递给方法的列表的Event
个实例,并且您在方法内创建的ArrayList<Double>
实例不会被任何对象引用。
要更改这些Event
的列表,您应修改Event
个实例:
for(int i = 0; i < list.size(); i++){
ArrayList<Double> onePrice = new ArrayList<Double>(list.get(i).getList().
subList(list.get(i).getList().size()-1, list.get(i).getList().size()));
list.get(i).setList(onePrice);
}