특정 값의 평균을 구하고 그 값들을 내림차순으로 정렬하는건데
정렬 후 널값이 발생합니다.
System.out.println("unsorted map");
for (String key : map.keySet()) {
int value = Integer.parseInt(String.valueOf(Math.round(map.get(key))));
System.out.println("key/value: " + key + "/" + value/*map.get(key)*/);
}
tm.putAll(map);
System.out.println("results");
ArrayList<String> resultList = new ArrayList<String>();
ArrayList<Double> dou_list = new ArrayList<Double>();
ArrayList<String> str_list = new ArrayList<String>();
for (String key : tm.keySet()) {
System.out.println("key/value: " + key + "/" + tm.get(key));
dou_list.add(tm.get(key));
str_list.add(key);
}
for(int i=0; i<5 ;i ++){
double dou = 0;
resultList.add(str_list.get(i));
if(dou_list.get(i) == null){
dou = dou_list.get(i-1)-0.0001;
int value = (int)dou;
String str = Integer.toString(value);
resultList.add(str);
}else{
dou = dou_list.get(i);
int value = (int)dou;
String str = Integer.toString(value);
resultList.add(str);
}
}
for(int i=0; i<resultList.size();i ++){
System.out.println(i+"번째"+resultList.get(i));
}
return resultList;
지금 소스가 이런 형태인데 정렬되지 않았을때는 값이 잘 들어갑니다.
그런데 밑에서 보시다시피 정렬후 널값으로 표시 되는데 저게 어디가 문제인지 잘 모르겠습니다.
제가 어떻게 해결해보려고
if(dou_list.get(i) == null){
dou = dou_list.get(i-1)-0.0001;
int value = (int)dou;
String str = Integer.toString(value);
resultList.add(str);
}
이런 코드를 넣었긴 했는데무용지물이구요
02-05 02:06:47.697: I/System.out(7931): unsorted map
02-05 02:06:47.697: I/System.out(7931): key/value: LW/65
02-05 02:06:47.697: I/System.out(7931): key/value: CAM/65
02-05 02:06:47.697: I/System.out(7931): key/value: RB/59
02-05 02:06:47.697: I/System.out(7931): key/value: CB/62
02-05 02:06:47.697: I/System.out(7931): key/value: LM/67
02-05 02:06:47.697: I/System.out(7931): key/value: RM/67
02-05 02:06:47.697: I/System.out(7931): key/value: LB/59
02-05 02:06:47.697: I/System.out(7931): key/value: ST/67
02-05 02:06:47.697: I/System.out(7931): key/value: LWB/66
02-05 02:06:47.697: I/System.out(7931): key/value: CDM/61
02-05 02:06:47.697: I/System.out(7931): key/value: RW/65
02-05 02:06:47.701: I/System.out(7931): key/value: CF/67
02-05 02:06:47.701: I/System.out(7931): key/value: SW/67
02-05 02:06:47.701: I/System.out(7931): key/value: GK/65
02-05 02:06:47.701: I/System.out(7931): key/value: RWB/66
02-05 02:06:47.701: I/System.out(7931): key/value: CM/66
02-05 02:06:47.705: I/System.out(7931): results
02-05 02:06:47.705: I/System.out(7931): key/value: CF/66.84615384615384
02-05 02:06:47.705: I/System.out(7931): key/value: ST/66.66666666666667
02-05 02:06:47.705: I/System.out(7931): key/value: SW/66.58333333333333
02-05 02:06:47.705: I/System.out(7931): key/value: RM/66.5
02-05 02:06:47.705: I/System.out(7931): key/value: LM/66.5
02-05 02:06:47.708: I/System.out(7931): key/value: RWB/65.61538461538461
02-05 02:06:47.708: I/System.out(7931): key/value: LWB/65.61538461538461
02-05 02:06:47.708: I/System.out(7931): key/value: CM/65.53846153846153
02-05 02:06:47.708: I/System.out(7931): key/value: GK/65.28571428571429
02-05 02:06:47.708: I/System.out(7931): key/value: RW/null
02-05 02:06:47.708: I/System.out(7931): key/value: LW/null
02-05 02:06:47.712: I/System.out(7931): key/value: CAM/65.16666666666667
02-05 02:06:47.712: I/System.out(7931): key/value: CB/62.416666666666664
02-05 02:06:47.712: I/System.out(7931): key/value: CDM/60.92857142857143
02-05 02:06:47.712: I/System.out(7931): key/value: LB/59.23076923076923
02-05 02:06:47.712: I/System.out(7931): key/value: RB/null
02-05 02:06:47.712: I/System.out(7931): 0번째CF
02-05 02:06:47.712: I/System.out(7931): 1번째66
02-05 02:06:47.712: I/System.out(7931): 2번째ST
02-05 02:06:47.712: I/System.out(7931): 3번째66
02-05 02:06:47.712: I/System.out(7931): 4번째SW
02-05 02:06:47.712: I/System.out(7931): 5번째66
02-05 02:06:47.712: I/System.out(7931): 6번째RM
02-05 02:06:47.712: I/System.out(7931): 7번째66
02-05 02:06:47.712: I/System.out(7931): 8번째LM
02-05 02:06:47.712: I/System.out(7931): 9번째66
그리고 아무 값도 입력하지 않았을때도 널값이 납니다.
이런식으로요
02-05 02:07:03.025: I/System.out(7931): unsorted map
02-05 02:07:03.025: I/System.out(7931): key/value: LW/0
02-05 02:07:03.025: I/System.out(7931): key/value: CAM/0
02-05 02:07:03.025: I/System.out(7931): key/value: RB/0
02-05 02:07:03.025: I/System.out(7931): key/value: CB/0
02-05 02:07:03.025: I/System.out(7931): key/value: LM/0
02-05 02:07:03.025: I/System.out(7931): key/value: RM/0
02-05 02:07:03.025: I/System.out(7931): key/value: LB/0
02-05 02:07:03.025: I/System.out(7931): key/value: ST/0
02-05 02:07:03.025: I/System.out(7931): key/value: LWB/0
02-05 02:07:03.029: I/System.out(7931): key/value: CDM/0
02-05 02:07:03.029: I/System.out(7931): key/value: RW/0
02-05 02:07:03.029: I/System.out(7931): key/value: CF/0
02-05 02:07:03.029: I/System.out(7931): key/value: SW/0
02-05 02:07:03.029: I/System.out(7931): key/value: GK/0
02-05 02:07:03.029: I/System.out(7931): key/value: RWB/0
02-05 02:07:03.029: I/System.out(7931): key/value: CM/0
02-05 02:07:03.029: I/System.out(7931): results
02-05 02:07:03.029: I/System.out(7931): key/value: CM/0.0
02-05 02:07:03.029: I/System.out(7931): key/value: RWB/0.0
02-05 02:07:03.029: I/System.out(7931): key/value: GK/0.0
02-05 02:07:03.029: I/System.out(7931): key/value: SW/null
02-05 02:07:03.029: I/System.out(7931): key/value: CF/0.0
02-05 02:07:03.029: I/System.out(7931): key/value: RW/null
02-05 02:07:03.029: I/System.out(7931): key/value: CDM/null
02-05 02:07:03.029: I/System.out(7931): key/value: LWB/null
02-05 02:07:03.029: I/System.out(7931): key/value: ST/0.0
02-05 02:07:03.029: I/System.out(7931): key/value: LB/null
02-05 02:07:03.029: I/System.out(7931): key/value: RM/null
02-05 02:07:03.033: I/System.out(7931): key/value: LM/null
02-05 02:07:03.033: I/System.out(7931): key/value: CB/null
02-05 02:07:03.033: I/System.out(7931): key/value: RB/null
02-05 02:07:03.033: I/System.out(7931): key/value: CAM/null
02-05 02:07:03.033: I/System.out(7931): key/value: LW/null
널 값의원인이 뭔가요?
아무 값도 입력 안하면 다 0인데도 널 값이 납니다.