-5

コードがコイン変更順列リストを int 配列のリストとして出力しない理由を理解しようとしています。16進値(または何でもI@64578ceb)を出力しています。

何かご意見は?

電話:

System.out.println("Permutations List: " + dan.makeChange(27));

コード:

public class Person {
int[] denominations, coinValues;
List<int[]> resultsList;

public Person() {
    denominations = new int[]{25, 10, 5, 1};
    resultsList = new ArrayList<int[]>();
}


public List<int[]> makeChange(int change) {
   return resultsList= changeMaker(change, new int[] {0,0,0,0});
}

public List<int[]> changeMaker(int change, int[] toAdd) {               
    if (change == 0) {
        resultsList.add(toAdd);
        return resultsList;
    }

    for (int i = 0; i < denominations.length; i++) {
        if (change >= denominations[i]) {
            int[] temp = toAdd;
            temp[i]++;
            resultsList = changeMaker(change-denominations[i], temp);
        }
    }
    return resultsList;
}

出力:

Permutations List: [[I@64578ceb, [I@64578ceb, [I@64578ceb, [I@64578ceb, [I@64578ceb, [I@64578ceb, etc...
4

5 に答える 5

1

System.out.println メソッドは、配列を任意の型で出力する方法を知りません。

int 配列を表示する場合は、int[] と戻り文字列を受け取る関数を作成し、印刷時に List のすべてのエントリをその関数でラップします。

于 2013-05-13T19:12:58.683 に答える