2

を別のものに変換できるかどうか疑問に思っていObjectました。

3、4、2、5、1 のようなランダムな順序で一連の数字を含むオブジェクトがあり、それを int[] に変換したり、そこから特定の要素を選択したりできるかどうか疑問に思っています。配列からの番号?

編集:私が持っているコードの一部は次のとおりです。

//This contains all the different combinations of the numbers
ArrayList routePop4 = new ArrayList();
//This picks out the first one, just as a test
Object test = routePop4.get(0);

しかし、アイデアは、テストの各要素をループしたいということです。

4

3 に答える 3

2

オブジェクトに「一連の数字を含める」ことはできません。ただし、すべてのコレクションなど、オブジェクトの多くのサブクラスは「一連の数値を含む」ことができ、コレクションtoArray()の内容を配列に変換するメソッドが付属しています。

コレクションがあり、オブジェクトとしてしかアクセスできない場合は、適切に操作する前にキャストする必要があります。

ArrayList<Integer> list = (ArrayList<Integer>)test;
Integer[] arr = list.toArray(new Integer[]{});

日常の Java では、オブジェクトとしてキャストされた変数を実際に操作することはかなりまれです。次のように、ジェネリックを使用して、他のオブジェクトを含むオブジェクトがジェネリックにできるようにすることができます。

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1); // Can only add integers, list.add("a string") would fail at compile time
int n = list.get(0); // no need to cast, we know list only contains Integers

コレクションを使用していない場合は、Luke Taylor の回答が示唆するように、おそらく自分で作成する必要があります。とはいえ、より多くの情報を提供できれば、より良い回答が得られます。質問の現在のテキストは、Java コンテキストでは意味がありません。

于 2012-09-27T17:29:25.363 に答える
1

あなたの編集を見た後、ジェネリックを利用することをお勧めします。

を宣言するArrayListと、含まれるオブジェクトの種類を示すことができます。

たとえば、ArrayList に文字列が含まれることがわかっている場合は、次のようにします。

List<String> myList = new ArrayList<String>();

リストの各要素が整数の配列である場合、次のようにします。

List<Integer[]> listOfIntegerArrays = new ArrayList<Integer[]>();

次に、リストから任意の要素を取得し、次のように整数配列に割り当てることができます。

Integer[] integerArray = listOfIntegerArrays.get(0);

次に、次のようにリスト内のすべての整数を反復処理できます。

for (Integer loopInteger : integerArray) {
    System.out.println("The value: " + loopInteger);
}

ジェネリックに関するその他の読み物:

于 2012-09-27T17:19:27.030 に答える
0

次のようなことができます。

int[] numbersFromObject = new int[yourObject.getAmountOfNumbers()];

// Initialize array with numbers from array
for(int i = 0; i < yourObject.getAmountOfNumbers(); i++) {
numbersFromObject[i] = yourObject.getNumber(i);

}

オブジェクトに含まれるメソッドはわかりませんが、上記の次のように調整できると確信しています。

これが役立つことを願っています。

于 2012-09-27T17:21:06.653 に答える