入力されたmyプログラムは、行列の行を表す文字列です。この行列の列をLinkedHashMapに配置したいが、最初は配列のすべてを格納せずに、列を作成してLinkedHashMapに配置します。これはできるだけ早く行うべきであるという考え方です。文字列を配列に格納する前にHashMapに文字列を挿入する方法はありますか?
例:
入力:
のLinkedHashMapに保存する必要があり、文字列を
grgaa
rtwag
をabfadは以下のとおりです。
AGR
BRT
FGW
AAA
DAG
編集:
これは私のプログラムは、今それをしない方法です:
String[][] array = new String[n][m]; LinkedHashMap<Integer, String> map = new LinkedHashMap<Integer, String>(); for (int i = 0; i < n; i++) { array[i] = br.readLine().split(""); } for (int i = 0; i < m; i++) { String column = ""; for (int j = 0; j < n; j++) { column += array[j][i]; } map.put(i, column); }
これまでに何をやってみましたか?コードを表示し、あなたがそれを持っている問題を説明してください – UnholySheep
私は配列に個々の文字を格納し、次に列を追加し、それらをLinkedHashMapに格納します。私のプログラムはあまりにも遅く実行され、これが私のプログラムを改善できる唯一の部分です。 – tomishomo
文字列の1次元配列を使用して分割しないで、[charAt'](http://docs.oracle.com/javase/7/docs/api/)で個々の文字にアクセスしてみることもできますjava/lang/String.html#charAt(int))を内部ループ内に作成します。また、 '+ ='で追加するのではなく、 'StringBuilder'を使うことを考慮する必要があります。行を読み込んだ直後にマップに文字を格納することもできます(各行の読み込み後にマップに格納された文字列に追加する) - これらのアプローチのいずれかが十分であるかどうかをテストする必要があります – UnholySheep