【最简单】java string字符串数组排序(正逆序)、去重

作者: ʘᴗʘ发布时间:2021-12-06 17:57 浏览量:610 点赞:461 售价:0

简介

微信公众号开发过程中,签名算法需要对参数数组排序。使用java stream sort非常方便,这里分享一下。

排序代码

大概流程:

  • 使用java stream将string数组转为stream流。
  • 使用stream流的sort方法排序。
  • 将排序结果collect聚合成list。

代码如下:

正序排序

package com.coderbbb.book1.utils;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class TestUtil {

    public static void main(String[] args){


        String[] data = new String[]{
                "abc",
                "bcd",
                "222",
                "333",
                "abcd",
                "acbd"
        };

        List<String> collect = Arrays.stream(data).sorted().collect(Collectors.toList());
        System.out.println(collect);


    }

}

输出结果截图:

【最简单】java string字符串数组排序(正逆序)、去重

逆序排序

package com.coderbbb.book1.utils;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class TestUtil {

    public static void main(String[] args){


        String[] data = new String[]{
                "abc",
                "bcd",
                "222",
                "333",
                "abcd",
                "acbd"
        };

        List<String> collect = Arrays.stream(data).sorted(Comparator.reverseOrder()).collect(Collectors.toList());
        System.out.println(collect);


    }

}

输出结果如下:

【最简单】java string字符串数组排序(正逆序)、去重

去重代码

和排序类似,也是将String数组转为stream流之后,使用stream流的distinct方法去重。代码如下:

package com.coderbbb.book1.utils;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class TestUtil {

    public static void main(String[] args){


        String[] data = new String[]{
                "abc",
                "bcd",
                "abc",
                "222",
                "333",
                "abcd",
                "acbd"
        };

        List<String> collect = Arrays.stream(data).distinct().collect(Collectors.toList());
        System.out.println(collect);


    }

}

输出结果如下,可以看到重复的abc这个字符串已经被去除了。

【最简单】java string字符串数组排序(正逆序)、去重

java stream转array数组的方法

上面的代码中,我们将String数组排序、去重后,是以list的形式输出的,其实我们也可以用array数组的形式输出,代码如下:

package com.coderbbb.book1.utils;

import java.util.Arrays;

public class TestUtil {

    public static void main(String[] args){


        String[] data = new String[]{
                "abc",
                "bcd",
                "abc",
                "222",
                "333",
                "abcd",
                "acbd"
        };
        String[] strings = Arrays.stream(data).sorted().toArray(String[]::new);

        for(String item:strings){
            System.out.println(item);
        }


    }

}

输出结果如下:

【最简单】java string字符串数组排序(正逆序)、去重

版权声明:《【最简单】java string字符串数组排序(正逆序)、去重》为CoderBBB作者「ʘᴗʘ」的原创文章,转载请附上原文出处链接及本声明。

原文链接:https://www.coderbbb.com/articles/48

其它推荐:

user

ʘᴗʘ

77
文章数
52480
浏览量
41891
获赞数
67.80
总收入