Javaでエイリアシングをどのように処理しますか? 簡単な解決策は、たとえば ArrayList のコピーを作成することですが、コードを記述しようとすると、新しく追加されたデータによってデータが上書きされ続けます。詳細に:
ArrayList<ArrayList> temp = new ArrayList<ArrayList>() ;
ArrayList<ArrayList> personRecord = new ArrayList<ArrayList>() ;
ArrayList<String> personDetail = new ArrayList<String>() ;
...
while (input.hasNextLine())
{
String line = input.nextLine() ;
String [] tokens = line.split(" ", 0) ;
for (String s: tokens )
{
personDetail.add(s) ;
}
temp.add(personDetail) ;
personRecord.addAll(temp) ;
temp.clear() ;
personDetail.clear() ;
}
出力:
[[Peter, M, 1972], [Peter, M, 1972]]
それ以外の:
[[Peter, M, 1972], [Anne, F, 1974]]