0

型パラメーターを含むジェネリック メソッドを含むプログラムを作成しようとしています。クラス Pair のインスタンスを返す必要があります。ペアを返す方法がわかりません。私が持っているコードは以下の通りです:

public class MinMaxArray
{
  public static <ArrayType extends Comparable<ArrayType>>
                ArrayType getMinMax(ArrayType[] anArray)
            throws IllegalArgumentException
  {
    try
    {


  ArrayType resultMin = anArray[0];
      ArrayType resultMax = anArray[0];
      for (int index = 1; index < anArray.length; index++)
        if (result.compareTo(anArray[index]) < 0) 
          result = anArray[index];
        if (result.compareTo(anArray[index]) > 0)
          result = anArray[index];


  return resultMin;
  return resultMax;
}//try

    catch (ArrayIndexOutOfBoundsException e)
    { throw new IllegalArgumentException("Array must be non-empty", e); }
    catch (NullPointerException e)
    { throw new IllegalArgumentException("Array must exist", e); }
  }//getMinMax
}//class MinMaxArray

ペアクラスコード:

//Two onjects grouped into a pair.
public class Pair<FirstType, SecondType>
{
  //The first object.
  private final FirstType first;

  //The second object.
  private final SecondType second;

  //Constructor is given the two objects.
  public Pair(FirstType requiredFirst, SecondType requiredSecond)
  {
    first = requiredFirst;
    second = requiredSecond;
  }//Pair



  //Return the first object.
  public FirstType getFirst()
  {
    return first;
  }//GetFirst


  //Return the second object.
  public SecondType getSecond()
  {
    return second;
  }//GetSecond

}//class Pair

resultMax と resultMin をペアとして返す方法がわかりません。助けてくれてありがとう。

4

2 に答える 2

2

多分、

public static <ArrayType extends Comparable<ArrayType>>
            Pair<ArrayType, ArrayType> getMinMax(ArrayType[] anArray) {
    ...
    return new Pair<ArrayType, ArrayType>(resultMin, resultMax);
}
于 2012-04-19T13:40:10.263 に答える
2

試す

return new Pair<ArrayType, ArrayType>(resultMin, resultMax);

私見私は使用します

return new ArrayType[] { resultMin, resultMax };

または、ペアクラスにファクトリメソッドを追加できます

public static <FirstType, SecondType> Pair<FirstType, SecondType> of(FirstType first, SecondType second) {
      return new Pair<FirstType, SecondType>(first, second);
}

それからあなたは書くことができます

return Pair.of(resultMin, resultMax);
于 2012-04-19T13:40:28.473 に答える