体系课全能软件测试工程师含源码ppt

#1

download:体系课全能软件测试工程师含源码ppt

Java中运用比拟器处理依照特定的字符串次第排序List

引言

今天工作需求中,有一个小需求,要依照某一个特定的次第排列一个List。

举例:

原始的List 中存在3个String 元素

  • 原始List : python,Java,C++

如今需求依照另一个次第排序

  • 请求List:C++ ,python,Java。

网上大局部的排序都是依据某一个值,比方int,long 等等停止比大小,很少能找到依照特定字符串的材料。传统的代码运用for循环等等也能处理这个问题,但是希望运用比拟器的方式处理这个问题,今天就浅浅地研讨一下。

原理

经过研讨,最好的方式还是着眼于字符串的坐标值来处理这个问题,经过坐标值的比拟来完成这个问题。

理论样例

1 准备实体类

/**
 * @author fangzhou
 * @date 2022/7/27 11:24 上午
 */
public class Right {
    private String rightId;
    public String getRightId() {
        return rightId;
    }
    public void setRightId(String rightId) {
        this.rightId = rightId;
    }
}
复制代码

2 处理计划

 public static void main(String[] args) {
        // rightListMe 原始请求的类
        List<Right> rightListMe = new ArrayList<>();
        Right right = new Right();
        right.setRightId("rightId111");
        Right right1 = new Right();
        right1.setRightId("rightId222");
        Right right2 = new Right();
        right2.setRightId("rightId333");
        rightListMe.add(right);
        rightListMe.add(right1);
        rightListMe.add(right2);
       
        // rightListHe 特定次第的类
        List rightListHe = new ArrayList<>();
        rightListHe.add("rightId333");
        rightListHe.add("rightId111");
        rightListHe.add("rightId222");
        // 中心比拟器,经过该indexOf 找到下标
        Collections.sort(rightListMe, new Comparator() {
            @Override
            public int compare(Right o1, Right o2) {
                int index1 = rightListHe.indexOf(o1.getRightId());
                int index2 = rightListHe.indexOf(o2.getRightId());
                return (index1 == -1 || index2 == -1) ? (index2 - index1) : (index1 - index2);
            }
        });
        for (Right s : rightListMe) {
            System.out.println(s.getRightId());
        }
复制代码

3 输出结果

rightId333
rightId111
rightId222
复制代码

能够看到代码原来是 rightId111,rightId222,rightId333的次第,曾经排序如上图所示了。

结尾

依照上述的计划就能够处理List 依照特定的字符串次第排序list的问题,希望能够给大家一些启示,而且特别适用于针对依照某些特殊次第去排列对应的数据,比方产品相关的一些适用场景,要引荐什么的。