1

これはそれほど複雑な問題ではないと確信していますが、私は Java に比較的慣れていないため、しばらくこの問題に戸惑っています。

6 つの文字列値を含む配列があるとします[Apple, Banana, Banana, Banana, Orange, Orange]。上記の場合、この配列を取り、文字列を返すメソッドを構築しようとしています"Apple, 3×Banana, 2×Orange"

これについて何か助けていただければ幸いです。これを達成するためにさまざまな手法を試してきましたが、配列の最初の反復での正しい動作と、繰り返される値を検出するタイミングに陥ります。

4

4 に答える 4

4

を使用しMap<String, Integer>ます。配列を反復処理し、文字列を Map キーとして、カウンターを値として配置します。

Map<String, Integer> words = HashMap<String, Integer>();
for (String word : words) {
    Integer count = words.get(word);
    count = count == null ? 0 : count++;
    words.put(word, count);
}

単語マップには、単語とそのカウントの間のマッピングが含まれるようになりました。

于 2012-05-08T12:11:42.720 に答える
1

Fruit の名前がキーで、値が見られた回数であるTreeMapオブジェクトを使用できます。

foreach ループなどを使用してフルーツごとに配列を繰り返し処理し、TreeMap でそのフルーツの値を更新します。最後に、キーとその値を出力します。TreeMap を使用したため、キーはソートされた順序になります。

于 2012-05-08T12:11:23.580 に答える
1

何を試しましたか?HashMapのインスタンスを作成します。キーは果物の名前で、値は果物の出現です。配列を反復処理し、反復ごとに新しい果物をマップに追加するか、既存のキーの出現回数を増やします。

次に、HashMap を反復処理し、文字列を作成します

于 2012-05-08T12:11:34.373 に答える