如何在java中设置treemap中的第一个条目

时间:2014-03-03 04:58:32

标签: java java-ee collections

我有一个键和值对列表,因为我需要一个项目来到前面。例如: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);

1 个答案:

答案 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 );