서버에서 가져오는 값에서 중복값을 처리할 필요가 있었는데
서버에서 쿼리를 다시 돌리고 싶지 않았다.(삽질 후유증)
안드로이드에서 해결할 방법을 찾으려고 List 중복값을 검색해서 알아보니
HashSet을 이용해서 해결 할 수 있었다.
상황 : 서버에서 가져온 JSON배열을 파싱한 중복값들을 List에 저장 => Unique List를 생성해 Hashset을 이용한 중복값 제거 확인
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Override | |
protected void onPostExecute(String result) { | |
super.onPostExecute(result); | |
} | |
@Override | |
public void onSuccess(JSONObject result) { | |
super.onSuccess(result); | |
try { | |
if(resultStr.equals("success")){ | |
List<Integer> PatternCodes= new ArrayList<Integer>(); | |
JSONArray BookDiscorrectProblem = new JSONArray(result.getString("BookDiscorrect")); | |
for(int i = 0; i<BookDiscorrectProblem.length();i++){ | |
JSONObject DiscorrectProblemItem = (JSONObject) BookDiscorrectProblem.get(i); | |
int PatternCode = DiscorrectProblemItem.getInt("PatternCode"); | |
PatternCodes.add(PatternCode); | |
} | |
UniquePatternCodes = new ArrayList<Integer>(new HashSet<Integer>(PatternCodes)); | |
Log.i("갯수 확인", "갯수 :"+UniquePatternCodes.size()+" "+UniquePatternCodes.get(0)+" "+UniquePatternCodes.get(1)); | |
} | |
} catch (JSONException e) { | |
e.printStackTrace(); | |
} | |
} | |
}); |
로그 확인
03-15 13:02:29.544 211000006
03-15 13:02:29.544 211000009
03-15 13:02:29.544 211000009
03-15 13:02:29.545 211000009
03-15 13:02:29.545 211000009
03-15 13:02:29.545 211000006
03-15 13:02:29.545 211000009
03-15 13:02:29.545 갯수 확인: 갯수 :2
2개인거 확인 후 들어있는 값 확인
03-15 13:09:14.386 갯수 확인: 갯수 :2 211000009 211000006