-5

double の配列が与えられた場合

1.0 2.0 3.0 ... 10.0 

出力

filter(3,7)  should produce 3.0,4.0,5.0,6.0,7.0

filter(5,7.5) should produce 5.0,6.0,7.0,8.0

filter(6.6,6.7) should produce 6.0,7.0

filterメソッドに基づく

public List<Double> filter(double start, double end){
    List<Double> list = Arrays.asList(1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0);
    List<Double> resultList = new ArrayList<Double>(); 

     //search in list for elements such that it includes the lower bounds and upper bound of search
     //i.e. 6.6 should also include 6.0 and 7.0 from the array. 


   return resultList;

}

これは簡単に思えますが、満足のいく解決策を思いつくことができなかったので、質問です。どんな助けでも大歓迎です。

4

1 に答える 1

2

Math.floor関数を使用して目的のリストの開始を取得できるため、for ループ ソリューションが最も簡単なはずです。

for (double d = Math.floor(start); d <= Math.ceil(end); d += 1.0)
    list.add(d);
于 2012-11-16T01:10:31.297 に答える