簡體   English   中英

Java按字母順序對ArrayList中的ArrayList進行排序

[英]Java Alphabetically Sort ArrayLists inside an ArrayList

我有這個ArrayList,其中包含其他ArrayList

原文: [[EHM, Evans, 45], [AB, Evans, 63], [J, Jones, 72], [RA, Jones, 85], [B, Smith, 55]]

我想按字母順序對該ArrayList進行排序,以提供此輸出

期望的: [[AB, Evans, 63], [B, Smith, 55], [EHM, Evans, 45], [J, Jones, 72], [RA, Jones, 85]]

此數據基於我正在導入的文本文件,因此可能會更改。 我想比較每個ArrayList中的位置0並按字母順序排序。 目前,原始列表位於變量“ multiMarkArray”中

我將如何在Java中執行此操作?

感謝您的輸入-菲爾

好的和干凈的方法是這樣的:

// [[EHM, Evans, 45], [AB, Evans, 63]
List<List<String>> input = new ArrayList<>();
List<String> subInput;
subInput = new ArrayList<>();
subInput.add("EHM");
subInput.add("Evans");
subInput.add("45");
input.add(subInput);
subInput = new ArrayList<>();
subInput.add("AB");
subInput.add("Evans");
subInput.add("63");
input.add(subInput);

Collections.sort( input, (a,b) -> a.get(0).compareTo(b.get(0)) );
System.out.println(input);

您可以使用TreeSet的TreeSet。

TreeSet<TreeSet<String>> set = new TreeSet<>((s1, s2) -> s1.first().compareTo(s2.first()));
Set<String> subset1 = new TreeSet<>();
subset1.add("EHM");
subset1.add("Evans");
subset1.add("45");
Set<String> subset2 = new TreeSet<>();
subset2.add("AB");
subset2.add("Evans");
subset2.add("43");
set.add(subset1);
set.add(subset2);

TreeSet被排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM