-1

現在、次のような数字のリストを含む「ID」という名前の配列リストがあります。

3  3  3  3  3  6  6  6  6  6  7  7  7  7  8  8  8  

ID はプログラムを実行するたびに異なります。

「ID」配列リストを、同じ番号のみを含む小さな配列リストに分割できる状況を作り出す方法はありますか? 「ID」に含まれる異なる数字の数に基づいて、特定の数の新しい配列リストを作成できるコードを作成する方法がわかりません。

ArrayList<Double> ID = new ArrayList<Double>();
//ID is filled by a text file that will vary but will look something like 
    // 2 2 2 2 2 2 4 4 4 4 4 4 4 6 6 6 6 6 6 6 7 7 7 7 8 8 (all whole numbers)

私が欲しいもの

ArrayList<Double> newArray1 = new ArrayList<Double>();
//contains 2 2 2 2 2 2 
ArrayList<Double> newArray2 = new ArrayList<Double>();
//contains 4 4 4 4 4 4 4
ArrayList<Double> newArray3 = new ArrayList<Double>();
//contains 6 6 6 6 6 6 6

等々

4

4 に答える 4

1

一意の値を取得するには、a を使用しSetて Java に任せます。

いつでも、各種類の値がいくつあるかを知るには、 を使用できますMap<Integer,Integer>

于 2013-06-05T13:57:23.767 に答える
0

同じ数だけを含む小さな配列リスト?

それで、すべて等しい要素で満たされた arraylist が必要ですか? どうしてそうするか??

各数値にカウンターを使用するだけで、目的を達成できます。その後、すべてのカウンターをMap.

Map<String, Integer> countMap = new HashMap<>();

ID をカウントするには、次のようなメソッドを使用できます。

public void incrementForID(String id, Map<String, Integer> countMap) {
    Integer c = countMap.get(id);
    if(c == null) {
         c = 0;
    }
    coutmap.put(id, c.intValue()+1);
}
于 2013-06-05T14:08:36.183 に答える
0
public class OhMyGod {

    public List<ArrayList<Object>> answerThisQuestion(List<File> files) {

        ArrayList<ArrayList<Object>> returnValue = new ArrayList<>();

        for (File f: files) {
            int numberOfLists = magicallyGuessHowMany(f);
            for (int i = numberOfLists -1; numberOfLists != 0; numberOfLists--) {
                returnValue.add(new ArrayList<>());
            }
        }
        return returnValue;
    }

    public int magicallyGuessHowMany(File f){
        // answer my question here
    }
}

これはあなたのニーズに対応していないと思います。ただし、それはあなたの質問に答えます。

于 2013-06-06T08:57:55.653 に答える
-1

使用してみることができますList<ArrayList<MyObject>>

したがって、必要な数だけ追加できArrayListます。

于 2013-06-05T13:34:41.450 に答える