Code works. It sorts from A to Z. But there are Ç, İ etc. They come after Z which is wrong.
Here is the code
KeyValueDTO.java
public class KeyValueDTO implements Comparable<KeyValueDTO> {
private String key;
private String value;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "KeyValueDTO [key=" + key + ", value=" + value + "]";
}
@Override
public int compareTo(KeyValueDTO other) {
return key.compareTo(other.key);
}
/*
public int compare(KeyValueDTO s1, KeyValueDTO s2) {
Collator collator = Collator.getInstance(new Locale("tr", "TR"));
return collator.compare(s1, s2);
}*/
}
Controller
@RequestMapping(value = "/getCities", method = RequestMethod.GET)
@Cacheable("cities")
public @ResponseBody List<KeyValueDTO> getCities() {
logger.trace("getCities begins.");
List<City> cityList = cityService.findAll();
List<KeyValueDTO> cityKeyDtoList = new ArrayList<KeyValueDTO>();
for (City city : cityList) {
KeyValueDTO cityKeyDto = new KeyValueDTO();
cityKeyDto.setKey(city.getName());
cityKeyDto.setValue(String.valueOf(city.getCode()));
cityKeyDtoList.add(cityKeyDto);
}
Collections.sort(cityKeyDtoList);
// Collections.sort(cityKeyDtoList,Collator.getInstance(new Locale("tr", "TR")));
logger.trace("CityController: getAllCities ends");
return cityKeyDtoList;
}
it works from A to Z, but not Ç İ.. I tried to add Collactor
i couldnt use it right way. Could u do some help please?
I wrote this but it doesnt work. It stops running on eclipse.
public @ResponseBody List<KeyValueDTO> getCities() {
logger.trace("getCities begins.");
List<City> cityList = cityService.findAll();
List<KeyValueDTO> cityKeyDtoList = new ArrayList<KeyValueDTO>();
Locale turkish = new Locale("tr", "TR");
Collator collator = Collator.getInstance(turkish);
for (City city : cityList) {
KeyValueDTO cityKeyDto = new KeyValueDTO();
cityKeyDto.setKey(city.getName());
cityKeyDto.setValue(String.valueOf(city.getCode()));
cityKeyDtoList.add(cityKeyDto);
}
//Collections.sort(cityKeyDtoList);
// Collections.sort(cityKeyDtoList,Collator.getInstance(new Locale("tr", "TR")));
Collections.sort(cityKeyDtoList, collator);
logger.trace("CityController: getAllCities ends");
return cityKeyDtoList;
}