Java对String字符串进行指定顺序排序

背景

需求是这样的,给出一个字符串列表,需要将这个列表的字符串按照指定好的顺序进行排序,比如我们指定string字符串最终输出的顺序如下:

纯品
康师傅
六神
洞庭山
美的

现在,给你一个如下顺序的list:

  • 六神
  • 纯品
  • 美的
  • 康师傅
  • 洞庭山

如何将所给的list输出为指定顺序的list是我们接下来需要编码实现的。

注意: 所给list列表字符的顺序是无序的,上面的给出的list列表顺序只是个例子,实际可能会出现任何顺序

实现


import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;

/**
 * Java对String进行指定顺序排序
 *
 * @author jjh
 * @date 2020/06/23
 **/
public class SortTest {

    public static void main(String[] args) {

        // 指定需要最终排序的顺序
        HashMap<String, Integer> keyMap = new HashMap(){{
            put("纯品", 1);
            put("康师傅", 2);
            put("六神", 3);
            put("洞庭山", 4);
            put("美的", 5);
        }};

        // 需要做排序的字符串列表
        ArrayList updateList = new ArrayList() {{
            add("六神");
            add("纯品");
            add("美的");
            add("康师傅");
            add("洞庭山");
            add("洞庭2");
        }};

        System.out.println("排序前:"+updateList);

        // 进行排序操作
        updateList.sort(new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                // 处理不存在指定排序列表中的字符串
                if (keyMap.get(o1) == null || keyMap.get(o2) == null) {
                    return 1;
                }
                return keyMap.get(o1).compareTo(keyMap.get(o2));
            }
        });

        System.out.println("排序后:"+updateList);
    }

}

结果

运行该程序可以看到,输出的结果已经是按我们指定的顺序输出的了:
Java对String字符串进行指定顺序排序_第1张图片

你可能感兴趣的:(web,java)