java - 根据员工字母表(排序)合并两个列表

标签 java android

我有两个列表,其中包含作为字母表的标题和员工的姓名

List<Item> list1 = new ArrayList<Item>();

List<Item> list2 = new ArrayList<Item>();

public List<Item> getList1() {
    list1.add("A");
    list1.add("A1");
    list1.add("A2");
    list1.add("A3");

    list1.add("B");
    list1.add("B1");
    list1.add("B2");
    list1.add("B3");

    list1.add("C");
    list1.add("C1");
    list1.add("C2");
    list1.add("C3");

    return list1;
}

public List<Item> getList2() {
    list2.add("A");
    list2.add("A4");
    list2.add("A5");
    list2.add("A6");

    list2.add("B");
    list2.add("B4");
    list2.add("B5");
    list2.add("B6");

    list2.add("C"));
    list2.add("C4");
    list2.add("C5");
    list2.add("C6");

    return list2;
}

我想合并两个字母列表基础,输出应该如下所示

list1.add("A");
list1.add("A1");
list1.add("A2");
list1.add("A3");
list1.add("A4");
list1.add("A5");
list1.add("A6");


list1.add("B");
list1.add("B1");
list1.add("B2");
list1.add("B3");
list1.add("B4");
list1.add("B5");
list1.add("B6");

list1.add("C");
list1.add("C1");
list1.add("C2");
list1.add("C3");
list1.add("C4");
list1.add("C5");
list1.add("C6");

请任何人告诉我如何根据 A、B、C 等字母表合并两个数组列表

最佳答案

不要使用 List,而是使用 Set 并在完成合并后对其进行排序!

    List<String> lst1 = getList1();
    List<String> lst2 = getList2();
    lst1.addAll(lst2);
    Set<String> set = new HashSet<String>(lst1);
    lst1 = new ArrayList<String>();
    lst1.addAll(set);
    lst1.sort(Comparator.<String>naturalOrder());
    for(String item: lst1) {
        System.out.println(item);
    }

输出

A
A1
A2
A3
A4
A5
A6
B
B1
B2
B3
B4
B5
B6
C
C1
C2
C3
C4
C5
C6

关于java - 根据员工字母表(排序)合并两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25008212/

相关文章:

java - 当一个线程修改全局变量时,另一个线程也可以看到它吗?

java - JDBC/OSGi 以及如何动态加载驱动程序而无需在包中明确声明依赖关系?

android - 需要在 ARCORE 中播放视频

android - 如何使用 edittext 验证 json 数组

android - android 6.0 中无需位置权限的信标扫描

java - 安装特定应用程序后广播接收器获取 Toast

java - 什么是业务流程管理系统?

java - Java Web 应用程序中的主要方法?

android - 按下后关闭抽屉导航

java - 不同网络上的两个 Android 设备之间的连接