public static void main(String[] args) {
List<Student> list = new ArrayList<Student>();
for (int i = 0; i < 9; i++) {
Student student = new Student();
student.setAge("1");
student.setId("1");
student.setName("t");
list.add(student);
}
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
for (int j = i + 1 ; j < list.size(); j++) {
if (list.get(i).getAge().equals(list.get(j).getAge())) {
System.out.println("remove"+j);
list.remove(j);
}
}
}
// for (int i = 0 ; i < list.size(); i++) {
// System.out.println(list.get(i).getAge() + "-" + list.get(i).getName() + "-" + list.get(i).getId());
// }
}
}
for (int j = i + 1 ; j < list.size(); j++)
->
for (int j =list.size() - 1; j >= i + 1; j--)
否则你删除了list,你的list下标就变掉了。
从效率的角度来说,两重循环也不好,可以用hashmap把所有的数据按照age装入,然后自然就去重了。
hashset不是去重复的嘛
一边循环一边remove亏你想的出来
List list = new ArrayList();
for (int i = 0; i < 9; i++) {
Student student = new Student();
student.setAge("1");
student.setId("1");
student.setName("t");
list.add(student);
}
System.out.println(list.size());
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list.size());
不用那么麻烦,把对象放到TreeMap就可以了;
给你推荐个专业的java视频教学网站,免费的哦,去看看java从入门到精通的视频吧,也许对你很大的帮助:http://www.chuanke.com/s6579460.html