![](/img/trans.png)
[英]How to sort an ArrayList of ArrayLists (by one of the variables) in Java?
[英]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.