Map
最初に、それぞれの年齢ですべてのグループを作成することをお勧めします。
そのために、 で始まる行に対して、 の左側と右側で文字列をRegex
取得する を使用できます。alphanumeric
digit
colon
Group
これらの行はあなたのファイルからのものであると思われます。したがって、まず、行が で始まるかどうかを確認する必要がありますGroup
。次に、その行に次の正規表現を適用します。
"([A-Za-z0-9]+):(\\d+)" // Matches `G1:10`, `G2:30`, ...
そして、一致したすべての文字列のgroup 1
andをgroup 2
Map<String, Integer>
ここで、 で始まる次の行について、同様の Regex を適用しますが、 の左側People
だけに適用し、作成済みの から特定の年齢の を取得します。alphabetic characters
colon
group
Map
"([A-Za-z]+):(\\d+)" // Matches `John:22`
これで始められるかもしれません。
アップデート :
最新の編集に基づいて、Group
3 つの属性を持つクラスを作成することをお勧めします。
class Group {
private String groupName;
private int age;
private List<String> people;
}
を作成する代わりに、 をMap<String, Integer>
作成しますMap<Integer, Group>
。あなたの仕事はより簡単になります。Integer
ですage
。
Person
したがって、特定の で を取得したら、そのage
の からグループ オブジェクトを取得し、その のをその人物で更新します。Map
age
List<String>
group object
回避できるかどうか試してみてください。