编写一个应用程序,在主类Test1类中,创建两个链表List<E>对象,分别存储通过键盘输入的字符串内容

简介: 编写一个应用程序,在主类Test1类中,创建两个链表List<E>对象,分别存储通过键盘输入的字符串内容

题目1:编写一个应用程序,在主类Test1类中,创建两个链表List对象,分别存储通过键盘输入的字符串内容

——“chen”,“wang”,“liu”,“zhang”和“chen”,“hu”,“zhang”

(假定输入的内容在各自的链表中没有重复的),输出显示这两个链表List对象并集的结果。

import java.util.*;
public class Test1 {
    public static void main(String args[]) {
        getList();
    }
    private static void getList() {
        LinkedList<String> List1 = new LinkedList<String>();
        LinkedList<String> List2 = new LinkedList<String>();
        List<String> unionList = new ArrayList<String>();
        try {
            Scanner reader = new Scanner(System.in);
            System.out.println("please input list1: ");
            String a = reader.nextLine();
            String b = reader.nextLine();
            String c = reader.nextLine();
            String d = reader.nextLine();
            List1.add(a);
            List1.add(b);
            List1.add(c);
            List1.add(d);
            System.out.println("please input list2: ");
            String q = reader.nextLine();
            String w = reader.nextLine();
            String e = reader.nextLine();
            List2.add(q);
            List2.add(w);
            List2.add(e);
            // 获取去重并集
            unionList = receiveUnionList(List1, List2);
            Iterator<String> unionIterator = unionList.iterator();
            System.out.println("Union: ");
            while (unionIterator.hasNext()) {
                System.out.println(unionIterator.next());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static List<String> receiveUnionList(List<String> List1, List<String> List2) {
        List<String> resultList = new ArrayList<String>();
        Set<String> firstSet = new TreeSet<String>(List1);
        for (String id : List2) {
            firstSet.add(id);
        }
        resultList = new ArrayList<String>(firstSet);
        return resultList;
    }
}

运行结果:

相关文章
|
2月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
2月前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
2月前
|
编译器
【Bug记录】list模拟实现const迭代器类
【Bug记录】list模拟实现const迭代器类
|
2天前
|
JSON 前端开发 JavaScript
json字符串如何转为list对象?
json字符串如何转为list对象?
14 7
List集合的实现类
List集合的实现类
|
2月前
|
BI
【Azure Power BI】Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
【Azure Power BI】Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
|
3月前
|
存储 C++
C++的list-map链表与映射表
```markdown C++ 中的`list`和`map`提供链表和映射表功能。`list`是双向链表,支持头尾插入删除(`push_front/push_back/pop_front/pop_back`),迭代器遍历及任意位置插入删除。`map`是键值对集合,自动按键排序,支持直接通过键来添加、修改和删除元素。两者均能使用范围for循环遍历,`map`的`count`函数用于统计键值出现次数。 ```
28 1
|
4月前
|
存储 C++
C++的list-map链表与映射表
这篇教程介绍了C++中`list`链表和`map`映射表的基本使用。`list`链表可通过`push_front()`、`push_back()`、`pop_front()`和`pop_back()`进行元素的添加和删除,使用迭代器遍历并支持在任意位置插入或删除元素。`map`是一个键值对的集合,元素自动按键值排序,可使用下标操作符或`insert()`函数插入元素,通过迭代器遍历并修改键值对,同时提供`count()`方法统计键值出现次数。教程中包含多个示例代码以帮助理解和学习。
35 2
|
3月前
|
存储 语音技术 Python
语音识别,函数综合案例,黑马ATM,/t/t一个对不齐,用两个/t,数据容器入门,数据容器可以分为列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
语音识别,函数综合案例,黑马ATM,/t/t一个对不齐,用两个/t,数据容器入门,数据容器可以分为列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
|
4月前
|
BI
Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
在Power BI中,从SharePoint List获取数据时遇到Table和List混合的数据源,直接展开会导致“笛卡尔积”效应,生成过多行。目标是保持行数不变,将Table中的字段与List值用逗号分隔显示在同一行。解决方法包括:1) 添加新列,从Table中提取List的Column2值;2) 使用Text.Combine函数合并List中的值。具体操作步骤包括选择列并自定义新列,然后展开List并以逗号分隔。通过这些步骤,可以将Table转换为所需的字符串格式。完整的Power BI Query代码展示了这一过程。参考链接提供了更多详情。