パフォーマンスの最適化:アルゴリズムの最適化
ある理由で、私たちのシステムは別のシステムのテーブルのidを記録する必要があります.しかし、私たちが記録し終わった後、他の人のシステムはその表の中のいくつかのデータを削除する可能性があります.そうすると、私たちの側には無効なデータがたくさんあります.だから、私たちはこれらの無効なidを見つけて、削除しなければなりません.
最初に、私たちの実装は、記録されたすべてのidをリストに入れ、別のシステムに転送し、削除したidを返します.具体的な処理コードは以下の通りです.
public String findDeletedStuChooseCourseIds(List stuChooseCourseIds) {
List delIds = new ArrayList();
// id,
for (String id : stuChooseCourseIds) {
StuChooseCourse stuChooseCourse = commonEao.get(StuChooseCourse.class, id);
if (null == stuChooseCourse) {
delIds.add(id);
}
}
return JsonUtils.toJson(delIds);
}
, , 。 , , , 。 , 5 , 。
, , , , , 。 , 。 :
public String findDeletedStuChooseCourseIds(List stuChooseCourseIds) {
// stuchoosecourse ids
String nativeSql = "select id from tableName ";
List list = commonEao.executeGetNativeSQL(nativeSql);
stuChooseCourseIds.removeAll( list );
return JsonUtils.toJson(stuChooseCourseIds);
}
, , jdk removeAll ( jdk , ), 。 , , , 。
, stuChooseCourseIds.removeAll(list ) , list arrayList, arrayList 。 , LinkedList, 。 , 。 , :
public String findDeletedStuChooseCourseIds(List stuChooseCourseIds) {
List delIds = new ArrayList();
// stuchoosecourse ids
String nativeSql = "select id from tableName ";
List list = commonEao.executeGetNativeSQL(nativeSql);
// list id HashSet
HashSet dbSet = new HashSet();
for(String id : list){
dbSet.add(id);
}
// stuChooseCourseIds id dbSet
for(String givenId : stuChooseCourseIds){
if(dbSet.add(givenId)){
delIds.add(givenId);
}
}
return JsonUtils.toJson(delIds);
}
HashSet 。 , Hash, 。 , Set 。 , 20 , , 。 。
, , , 。 , 。 , 。
, , , list , , ? , 。 , 。 , :
public String findDeletedStuChooseCourseIds(List stuChooseCourseIds,String schoolCalendarId) {
List delIds = new ArrayList();
// stuchoosecourse ids
String nativeSql = "select id from tableName where schoolcalendarid='"+schoolCalendarId+"'";
List list = commonEao.executeGetNativeSQL(nativeSql);
// list id HashSet
HashSet dbSet = new HashSet();
for(String id : list){
dbSet.add(id);
}
// stuChooseCourseIds id dbSet
for(String givenId : stuChooseCourseIds){
if(dbSet.add(givenId)){
delIds.add(givenId);
}
}
return JsonUtils.toJson(delIds);
}
はまた1つのパラメータを えた-- 、 ごとに するデータは に わらないので、このようにして、どのくらい に わらず、 の はもう を けません.
の により、データ の を しました. 、データ をよく する があるでしょう.