我有一个键和值对列表,因为我需要一个项目来到前面。例如:100种不同类型的水果和水果,我将按字母顺序排序并放入JSON,我需要将橙色带到前面,所以订单将是Orage,Apple,Banana ..等等这是可能的
Iterator itr = treeMap.entrySet().iterator();
while ( itr.hasNext() )
{
Map.Entry me = (Map.Entry) itr.next();
String fruit_type="Orange";
if(fruit_type.equals(me.getValue())){
itr.remove();
}
JSONObject frtObj = new JSONObject();
frtObj.put("fruitCode", me.getValue());
frtObj.put("fruitName", me.getKey());
frtArrayObj.add(frtObj);
答案 0 :(得分:2)
您不能只将一些条目作为树图中的第一个条目。还有另一种方法来实现它,同时创建TreeMap传递自定义Comaparator
。
并且在Comparator<? super K> comparator
中写出了一个逻辑,即Orange应该是第一个元素。它确保“Orange”始终是地图的第一个元素。
代码段:
Comparator<String> customComparator = new Comparator<String>() {
@Override public int compare(String s1, String s2) {
// Add null check
if(s1.equals("Orange"))
return 1;
else if(s2.equals("Orange"))
return -1;
return s1.compareTo(s2);
}
};
...
SortedMap<String,String> map = new TreeMap<String,String>(customComparator );