二つの主流の方法があります。
マップがより一般的であるオブジェクト:
Map<String,String> match = new HashMap<>();
match.put("home_name", "Alvechurch Villa");
match.put("away_name", "Leamington");
match.put("home_score", "0");
match.put("away_score", "6");
あなたが追加することができますがリストにマップ:
List<Map<String,String>> matches = new ArrayList<>();
matches.add(list);
...そしてそれらを取得:
Map<String,String> match = matches.get(0);
System.out.println(match.get("away_score"));
データオブジェクトは、より多くのあなたのデータ形式にチューニングされていますが、クラスを自分で記述する必要があります。
public class Match {
public String homeName;
public String awayName;
public int homeScore;
public int awayScore;
}
今、あなたは、このクラスを使用することができます。
Match match = new Match();
match.homeName = "Studley";
// etc.
あなたはあまりにもリストからこれらを追加して検索することができます。
List<Match> matches = new ArrayList<>();
matches.add(match);
Match aMatch = matches.get(0);
これは簡単ですが、公共の持っている悪い習慣と考えられていますこのようなフィールドは、メソッドを介して取得する方がよいでしょう。簡潔にするため、ここでは1つのフィールドだけを持つデータのクラスがあります:
public class Player {
private String name;
public Player(String name) {
this.name = name;
}
public String name() {
return name;
}
}
Player neilStacey = new Player("Neil Stacey");
はあなたがMatch
内のすべてのフィールドと同じ技術を使用することができます。
(共通スタイルは、このgetName()
のようなメソッドに名前を付けるために、また、setName()
を持つことです。私は別のスタイルを使用して良い例を設定するための努力で、オブジェクト不変をした!)
データオブジェクトの利点の1つは、異なるフィールドに異なるタイプがあることです。homeName
は文字列、homeScore
は整数です。マップ内のすべてのフィールドは文字列です。あなたはMap<String,Object>
を使用してこれを回避することができますが、消費者として読むときに正しいタイプにキャストする必要があります。
String homeName = (String) match.get("home_name");
データオブジェクトを使用すると、コードが正しいことを知るのに役立つコンパイル時のチェックを多く行うことができます。マップを使用すると、実行時まで見つけることができません。
(ユーザーと仮定すると試合結果の100行を入力したい) – gv555
は、あなたが持っている特定の問題にあなたが持っているものは何でもコード投稿し、ポイントしてください。うーん、助けてくれるでしょう。 – 2ps
はJavaでタグ付けされています。質問はJavaについてです....... – Tim