0

私の質問は、オブジェクトを配列に追加する方法についてです。私の場合、4 列の配列クラスがあり、プログラムでオブジェクトを配列に追加できません。

public class DatabaseTable extends AbstractTableModel { 

    public ArrayList<Object> objects = new ArrayList<Object>(); 

    public void add(Object o, String sort, String getDesc) { 
        objects.add(o); 
    } 
    // ... 
}

私は試してみました:

DatabaseTable dt = new DatabaseTable();
dt.add("something", "something", "something", "something");

しかし、私のプログラムは実行されません..誰もがそれを行う方法を知っていますか?

4

8 に答える 8

3

3つの引数関数に4つの引数を渡しているようです。

于 2009-12-16T11:42:11.550 に答える
0

それが何に支えられているかに依存します。たとえばjava.util.ArrayList、の場合は、そのadd()メソッドを使用できます。

List<String> list = new ArrayList<String>();
list.add("something");
list.add("something");
list.add("something");
list.add("something");

DatabaseTable#add()メソッドでvarargsを使用する場合は、次のようになります。

public void add(String... strings) {
    list.addAll(Arrays.asList(strings));
}

またはもう少し効率的:

public void add(String... strings) {
    for (String string : strings) {
        list.add(strings);
    }
}

このようにして、必要に応じて使用できます。

dt.add("something", "something", "something", "something");

ただし、代わりにプレーンアレイに支えられている場合String[]は、もう少し作業を行う必要があります。

private String[] array = new String[0];

public void add(String... strings) {
    int length = array.length;
    String[] newArray = new String[length + strings.length];
    System.arraycopy(array, 0, newArray, 0, length);
    array = newArray;
    for (int i = 0; i < strings.length; i++) {
        array[length + i] = strings[i];
    }
}

コレクション(該当する場所)と配列の詳細についてArrayListは、Sunのチュートリアルが役立つ場合があります。試用版:コレクション言語の基本:配列

于 2009-12-16T11:38:46.253 に答える
0

次のようなものを使用できます。

public Object[] addObjectToArray(Object[] array, Object o)
{
    Object[] ret = new Object[array.length + 1];
    System.arraycopyt(array, 0, ret, 0, array.length);
    ret[array.length] = o;
    return ret;
}
于 2009-12-16T11:39:15.067 に答える
0

DatabaseTableクラスがわかりません。ArrayListを試しましたか?何かのようなもの:

ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
ArrayList<String> tmp = new ArrayList<String>();
tmp.add("something");
tmp.add("foo");
tmp.add("bar");
tmp.add("wtf");
list.add(tmp);
于 2009-12-16T11:28:05.633 に答える
0

DatabaseTableは、配列の動作を実装するために開発したクラスですか?その場合は、add()実装をデバッグする必要があります。文脈がなければ、私たちはこれ以上助けることはできません。

宿題のために自分で配列を実装する場合は、最初に、言語によって提供される配列構造の存在と動作に注意する必要があります。プログラムが実行されないのはなぜですか?例外をスローしますか?

配列がJavaチュートリアルでどのようにカバーされているかを確認してください。コレクションフレームワークもチェックする必要があります。

于 2009-12-16T11:32:10.477 に答える
0

Pastebay コードでは、 DatabaseTable.add() には 3 つの引数があり、上記のコードには 4 つの引数があります。

于 2009-12-16T11:50:29.893 に答える
0

加算とは、配列要素に値を代入するということですか?

yourArray[0] = yourObject1;
yourArray[1] = yourObject2;
//...
于 2009-12-16T11:27:41.790 に答える
0

特定の長さの配列を作成することでオブジェクトの配列を作成でき、オブジェクトを位置ごとに配列に配置できます。

public static Object [] addToArray(){
    List list1 = new ArrayList();
    list1.add("11111");

    List list2 = new ArrayList();
    list2.add("2222222222");

    List list3 = new ArrayList();
    list3.add("3333333333");

    List list4 = new ArrayList();
    list4.add("444444444");
    Object []arr = new Object[4];

    arr[0] = list1;
    arr[1] = list2;
    arr[2] = list3;
    arr[3] = list4;
    return arr;

}
于 2009-12-16T12:22:46.433 に答える