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