Không check trùng đối tượng

em kiểm tra nếu chưa tồn tại đối tưởng thì mới thêm vào list nhưng nó ko check được mà thêm cả những đối tượng trùng vào list

public void searchListSurveySelect(){
	List<SurveyTestUser> listTestUser=getEntityManager().createQuery("from SurveyTestUser survey where survey.userType='CUSTOMER' and survey.customer.customerId!="+instance.getCustomerId()).getResultList();
	for (SurveyTestUser surveyTestUser : listTestUser) {
		SurveyTest survey=(SurveyTest) getEntityManager().createQuery("from SurveyTest survey where survey.testId="+surveyTestUser.getSurveyTest().getTestId()).getSingleResult();
		if (!listSurveyForCustomer.contains(survey)) {
			listSurveyForCustomer.add(survey);
		}
	}
}

không chắc lắm nhưng hình như cần override equal và hashcode

2 Likes

Có nhiều cách để check trùng đối tượng, bạn có thể sử dụng một trong các cách sau:

  1. Override phương thức hashcode và equals.
  2. Implement Comparable hoặc Comparator.
  3. Sử dụng một số phương thức được hỗ trợ trong Java 8.

Bạn có thể tham khảo link sau:

1 Like

Trường hợp của bạn này là dùng list thì chỉ có cách đầu tiên thôi, mấy cái compare kia chỉ dùng cho sắp xêp thôi, cụ thể thì trong trường hợp này bạn ấy dùng method contains thì chỉ có override equals hashcode thôi

1 Like

dạ em cảm ơn mọi người ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?