二维List利用Arrays.sort进行排序

本文记录如何使用Arrays.sort对二维List<List<String>>进行排序。通过将List转为Object数组,然后重写compare方法进行排序,实现了二维List中String的字典序排序。但这种方法在LeetCode题目中可能超时,提示可以考虑使用Collections.sort和自定义Comparator优化。
摘要由CSDN通过智能技术生成

前言

刷leetcode碰到一个题要对二维List进行排序,在这卡了一会,现在找到方法了,在此以List<List< String>>为例子,做个记录。

正文

需求

有一个二维List,数组中的元素是String,即List<List< String>>。最外面List里每个元素是一个List< String>,现在要让每个List里所有String拼接为一个String,以字典序进行排序。

解决方案

我使用Arrays自带的sort方法进行,看下源代码:

public static <T> void sort(T[] a, Comparator<? super T> c) {
   
        if (c == null) {
   
            sort(a);
        } else {
   
            if (LegacyMergeSort.userRequested)
                legacyMergeSort(a, c);
            else
                TimSort.sort(a, 0, a.length, c, null, 0, 0);
        }
    }

也就是Arrays.sort()方法第一个参数需要是一个T[],即Object数组,而List并不符合要求,这里需要先将List转为Object数组,即List<List< String>>可转换为一个List< String>数组,参考https://blog.csdn.net/huanghanqian/article/details/81078799,可以写出对应代码:

List<String> toprint[]=new ArrayList[tot.size()];
tot.toArray(toprint);

这样,toprint数组里每个元素类型都是List&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值