我有一个 ArrayList。我想对相似的项目进行分组,这样 letter.pdf 是每个组中的第一个。例如:
123_Letter.pdf
123_Others.pdf
123_More.pdf
222_Second.pdf
222_Letter.pdf
222_Third.pdf
222_Fourth.pdf
123_File.pdf
输出应该是:
**123_Letter.pdf**
123_Others.pdf
123_More.pdf
123_File.pdf
**222_Letter.pdf**
222_Second.pdf
222_Third.pdf
222_Fourth.pdf
每组中其他元素的顺序无关紧要。列表中有 3000 多个元素。如您所见,仅排序并没有多大帮助。
我试过这样的事情,但它缺少最后一个元素 123_File.pdf。有没有更好的方法来做到这一点?请帮忙。
String root = list.get(0).substring(0,4);
ArrayList<String> al = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
while (list.get(i).substring(0, 4).equals(root)) {
if (list.get(i).endsWith("etter.pdf")) {
al.add(0, list.get(i));
i++;
} else {
al.add(list.get(i));
i++;
}
}
System.out.println(al);
al = new ArrayList<>();
root = list.get(i).substring(0, 4);
}
开满天机
Smart猫小萌
繁星点点滴滴
相关分类