int型の配列を指定すると、次のことを行うメソッドを記述したいと思います。配列要素の各ペアに対して、それらを結合して内部クラスオブジェクトのリストに入れます。次に、配列の各要素を比較し、各ペアの値の間に収まるかどうかを確認します。 (つまり、配列0,4,4のペア(0,4)を作成した後、値2が実際に0と4の間にあるかどうかをチェックするので、カウンタが増加します)。私は次のコードを試しましたが、0を返しました。それを修正する方法、またはそれを達成するための簡単な方法はありますか?私は主に戻り値が正しいことを心配しています。ありがとうございます与えられた配列の2つの要素の間にある配列要素の数を数える方法
import java.util.*;
import java.util.Map;
import java.lang.*;
public class Prac1 {
public int count(int[] A){
int k = 0;
class PTemp{
int first = -1;
int second = -1;
public PTemp(int first, int second){
int f = first;
int s = second;
}
}
List<PTemp> r = new ArrayList<PTemp>();
for (int i = 0; i < A.length; i++) {
for (int j = i+1; j < A.length; j++) {
r.add(new PTemp(A[i], A[j]));
r.add(new PTemp(A[j], A[i]));
//System.out.println("["+A[i] +","+A[j]+"]");
//System.out.println("["+A[j] +","+A[i]+"]");
}
}
Iterator<PTemp> ir = r.iterator();
while (ir.hasNext()){
PTemp p = ir.next();
for (int i = 0; i < A.length; i++){
if (((p.first < A[i]) && (A[i] < p.second)) || ((p.first > A[i]) && (A[i] > p.second))){
k = k + 1;
}
}
}
return k;
}
public static void main(String[] args){
int[] A = {0, 2, 4};
Prac1 pr = new Prac1();
System.out.println(pr.count(A));
}
}
なぜあなたは '' PTEMP(J、I) 'だけでなく' PTEMP(i、j)を追加していますか? –
彼は同じ配列の別の値のペアの間にある配列の値の数を探したいので、両方が必要です。 –
同じ値の値は[0,2]と[2,0]の間にあるため、両方を必要としません。 –