の値に複数のキーを追加:このデータを取得するために私は現在、HTMLフォームで次のデータを持っているハッシュマップ
Year| car type | # of cars sold
2001| Toyota-Camry | 242435
2000| Honda-Accord | 344423
2001| Honda-Accord | 555255
2000| Honda-Civic | 342344
2008| Toyota-Prius | 666154
1996| Honda-Accord | 114526
2001| Toyota-Prius | 90234
、私はHTMLから行を読み込みBufferedReader
を持っています。空のスペースがあるため、データが存在する前に最初から数行をスキップします。だから私のコードは現在
public class carSales {
private Map<Integer, HashMap<Integer, String>> carSalesMan =
new HashMap <Integer, HashMap<Integer, String>>;
private void getcarTypes(String url) {
try {
URL urlz = new URL(url);
URLConnection urlc = myURL.openConnection();
BufferedReader line = new BufferedReader
(new InputStreamReader(urlConnection.getInputStream()));
String next;
next = line.readLine();
while (next.contains("</s>") {
String[] parts = next.split(" ");
if (carSalesMan.isEmpty() || carSalesMan.get(Integer.parseInt(parts[0])) == null {
carSalesMan.put(Integer.parseInt(parts[0], new HashMap<Integer, String>());
carSalesMan.get(Integer.parseInt(parts[0])).put(Integer.parseInt(parts[2]), parts[1])
}
}
catch (IOException e) {
}
}
です。これは、一意の年を持つデータだけを格納しているようです。だから私のcarSalesMan
変数のサイズは4である。なぜなら、私は4つのユニークな年しかないから、リストが下がるにつれて互いに上書きするからだ。同じ年であってもすべての車種を追加する簡単な方法はありますか?
はい、 'Map'は値の鍵のユニークなマッピングです。おそらく何をすべきかは、年、車のタイプ、販売されたユニット( '.equals()'と '.hashcode()'を忘れずに構造体(おそらくSet) – KevinO
これは 'Map'のユースケースのようには見えません。新しいフィールドを追加するたびに' Map'sを続けて入れようとしていますが、 'List'または 'Set 'を使用してください。 –
4castle
@ 4castle yea残念ながら、これはHashMapsとMapsを使用するためのプロジェクト要件です – rlyspooky