2017-07-12 4 views
0

したがって、変数を持つオブジェクト呼び出されたイベントがあります。オブジェクトが格納されているリストのサブリストを作成するリスト

private String id; 
private int x; 
private int y; 
private int distance; 
private ArrayList<Double> list; 

リスト変数は、各イベントのチケット価格のリストを表す2倍のリストを保持します。

私は既に最低価格から最高価格のリストをソートしていますので、最低価格はリストの一番上に表示されます。私がしたいのは、各イベントの最低価格になる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; 
    } 

助けがあれば助かります。

+3

:あなたはEventのインスタンスを変更する必要がありますこれらのEvent秒のリストを変更するためには

。メソッドsubListは新しいListオブジェクトを返し、既存のものを変更しません。公正であるためには、あなたがしなければならないコードが何であるかを理解するのは苦労します。 ArrayList を作成して、何もしないでください。 –

+0

あなたはここで何を期待していますか? 「私がしたいことは、1つのサブリストを作成して、各イベントの最低価格にすることです」 ?? – Prasath

+1

あなたは1のサブリストを返そうとしています(その場合は、サイズが1つの要素ですか?)その場合、Doubleを返さないのはなぜですか? 質問を定式化するのに少し時間と努力を払わないと、誰もあなたを理解することができません – cristianhh

答えて

1

メソッドに渡すリストのEventインスタンスは変更されておらず、メソッド内で作成するArrayList<Double>インスタンスはどのオブジェクトからも参照されません。あなたは単にあなたが作成するローカルonePriceのサブリスト、メソッドに渡されたリストを引数にない戻ってきている

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); 
} 
+0

それはあなたに感謝しました。私は何か小さいものが見つからないことを知っていた、私はsetList()メソッドに慣れていない。 –

+0

@SeanMcGrathよろしくお願いします! 'setList'メソッドになじみがないのはどういう意味ですか?これはあなた自身の 'Event'クラスで定義すべきメソッドです。 – Eran

+0

うわー私は恥ずかしいと感じ、私はそれを持っています。しかし何らかの理由で、私はそれがArrayListの組み込みメソッドであることを教えました。とにかく再び感謝します。 –

関連する問題