如何按照子数组长度对二维数组进行降序排序
二维数组按子数组长度降序排序解决方案
完全可以实现该需求,排序逻辑只需要将子数组的长度作为排序权重,指定降序规则即可,排序过程不会修改子数组内部的元素顺序,完全匹配你给出的示例效果。
示例说明
输入的二维数组:
[["1","b","g"],["e","3"],["r","2","9","a"],["2"]]
各子数组的长度分别为3、2、4、1,按长度从大到小排序后,输出结果为:
[["r","2","9","a"],["1","b","g"],["e","3"],["2"]]
常用语言实现示例
- Python 实现:
original_arr = [["1","b","g"],["e","3"],["r","2","9","a"],["2"]] # key指定排序依据为子数组长度,reverse=True表示降序 sorted_arr = sorted(original_arr, key=lambda item: len(item), reverse=True)
- JavaScript 实现:
const originalArr = [["1","b","g"],["e","3"],["r","2","9","a"],["2"]]; // 排序规则:长度大的子数组排在前面 const sortedArr = originalArr.sort((a, b) => b.length - a.length);
- Java 实现(JDK8+):
import java.util.Arrays; import java.util.Comparator; import java.util.List; public class SortTest { public static void main(String[] args) { List<List<String>> originalArr = Arrays.asList( Arrays.asList("1","b","g"), Arrays.asList("e","3"), Arrays.asList("r","2","9","a"), Arrays.asList("2") ); // 按子数组长度降序排序 originalArr.sort(Comparator.comparingInt(List::size).reversed()); } }
内容的提问来源于stack exchange,提问作者Zhu
相关产品推荐
相关产品推荐

