2017-05-15 6 views
-8

範囲の間で、配列のすべての値を取得する:私は、配列に含まれていない範囲として2つの整数を指定することができますメソッドを作成したい私はソートされた整数配列持ち

int[] arr = {13,18,22,29,44,59,77,81,87,99}; 

を呼び出し、範囲内のすべての値を取得します。これらの2つの値は配列にはありません。

public ArrayList<int> find(num1, num2){ 
    ArrayList<int> values = new ArrayList<int>(); 
    int firstIndex = 0; 
    int secondIndex = 0; 

    for(int i=0; i<arr.length; i++){ 

     if(num1 == arr[i]){ 

      firstIndex = i; 

     } 

     if(num2 == arr[i]){ 

      secondIndex = i; 

     } 

    } 

    while(firstIndex <= secondIndex){ 

     values.add(arr[firstIndex]); 
     firstIndex++; 

    } 
    return values; 
} 

advance..I'mのおかげではしばらくの間、この上で立ち往生:これまでのところ、私は2つの値がARRに存在しているときのみ動作しており、これを試してみました!

+4

'for(loopOverArray){if(InRange)add}'を擬似的に、ほとんどすべて行う必要があります。私たちはまたあなたのための仕事をするためにここにはいません、私たちはあなたの試みを示し、あなたは立ち往生し、私たちは助けます。それ以外の場合は、あなたの質問は私が言うことを閉じます。 – SomeJavaGuy

+4

* "私はしばらくこのことに固執しています" *あなたの試行を表示してください。そうでない場合は、コード書き込み要求のように聞こえます。あなたがやったことを示し、うまくいっている部分がうまくいかないこと、あなたが使っている入力などなどを説明します。人々はあなたのコードがあなたが期待していることをしていない理由を助けてくれるでしょう。 –

+0

謝罪します。私はもう一度質問を編集しました。指摘していただきありがとうございます。 – Arefin

答えて

-2

配列をループし、その数が指定された範囲内にあるかどうかを確認します(たとえば、最小数は9、最大数は30です)。新しく作成された配列に追加し、完了したら配列を返します。私はすぐにコードスニピットを提供します。

public ArrayList<Integer> withinRange(int min, int max, int[]array){ 
    ArrayList<Integer> list = new ArrayList<>(); 

    for(int i : array){ 
     if(i>=min && i<=max){ 
      list.add(i); 
     } 
    } 
    return list; 
} 

これには、回答の最小値と最大値が含まれます。

+0

それはうまくいきました、ありがとう! – Arefin

+0

@Arefin問題はありません。しかし、なぜdownvotes? – MZ4Code

+0

私は15の評判を持っていないので、私はあなたを投票することはできません。申し訳ありません... @ MZ4コード – Arefin

-1

これは、1つのソリューションです:

private static int[] valuesBetween(int min, int max) { 
    int start = 0; 
    while (start < arr.length && arr[start] < min) start++; 
    int end = start; 
    while (end < arr.length && arr[end] <= max) end++; 
    return Arrays.copyOfRange(arr, start, end); 
} 

あなたは空の配列に適用することができ、max未満minであれば、それは同様に動作します。