java - 在 Java 中使用列表来存储用户输入并执行任务

标签 java arrays list arraylist set

这是我第一次在这个程序中使用 List。目标是避免使用 Java 中的 Set 集合接口(interface),而是使用 List 接口(interface)。

我目前正在研究第一部分,允许用户创建步骤。但是,我不知道程序如何存储整数,然后提取每个集合(使用用户创建的名称)以对它们执行操作。

我在底部提供了项目要求,但我更愿意了解列表如何工作以及如何最好地实现它们以执行正确的操作,而不是如何执行项目的答案。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Set {
    @SuppressWarnings("resource")
    public static void main(String[] args) {

        int number;
        Scanner scan = new Scanner(System.in);
        System.out.println("1) Create a set /n"
                + "2) Print the list of created sets /n"
                + "3) Print a set /n4) Union /n" + "5) Intersection /n"
                + "6) Subtraction /n" + "7) Exit /n"
                + "Please enter the number of the command you desire >");
        number = scan.nextInt();

        ArrayList<String> setName = new ArrayList<String>();
        ArrayList<Integer> setNumber = new ArrayList<Integer>();


        if (number == 1) {
            System.out.println("Please enter a name for the set: ");
            setName.add(scan.next());
            System.out
                    .println("Please enter values for the set, separated by a space (To establish end of input: 'X'): ");
            setNumber.add(scan.nextInt());
        }


    }
}

“在这个项目中,您将使用集合。您应该编写一个 Java 程序 允许用户创建集合并对它们执行一些简单的操作,包括并集, 交集和减法。 执行后,程序应向用户显示一个菜单并提示用户 输入命令(菜单中的数字)。您的菜单应类似于: 1)创建一个集合。 2)打印创建的集合列表 3)打印一套 4) 联盟 5) 交叉口 6) 减法 7) 退出 请输入命令编号>

用户输入命令后,您的程序将执行特定任务。任务完成后,您的程序应该打印回菜单并 等待新命令。

注意: 这些集合应该只包含整数值。 用户可以创建的集合数量和数量不应受到限制 集合中的元素。 用户可以输入任何名称来访问集或对其执行操作。 您的程序应始终检查请求的集合是否存在。 该程序应该处理空集,即没有元素的集。例如,要创建一个空集,用户可以输入“X”而不提供任何整数值。 集合不能有重复的值。集合中的所有元素都必须是唯一的。 你的程序永远不应该崩溃。 您不得在此项目中使用 Java 的 Collection 接口(interface)中的 Set。 您应该使用 List(详细信息如下)。”

最佳答案

你应该做一个NumberSet包含 2 个类变量的类:

  • String name
  • ArrayList<Integer> numbers

您还将在 NumberSet 中编写方法类:

  • public NumberSet union(NumberSet secondSet)
  • public NumberSet intersection(NumberSet secondSet)
  • public NumberSet subtraction(NumberSet secondSet)
  • public void printSet()

确保构造函数方法初始化 ArrayList<Integer> numbers否则你会得到空指针异常。

然后在你的main中,您应该有一个 NumberSets 列表 ArrayList<NumberSet> sets 。这将跟踪所有用户创建的 NumberSet。

public static void main(String[] args) {

    int number;
    Scanner scan = new Scanner(System.in);
    System.out.println("1) Create a set /n"
            + "2) Print the list of created sets /n"
            + "3) Print a set /n4) Union /n" + "5) Intersection /n"
            + "6) Subtraction /n" + "7) Exit /n"
            + "Please enter the number of the command you desire >");
    number = scan.nextInt();

    ArrayList<NumberSet> sets = new ArrayList<NumberSet>();

    if (number == 1) {
        NumberSet newSet = new NumberSet();

        System.out.println("Please enter a name for the set: ");
        newSet.name = scan.next();

        System.out.println("Please enter values for the set, separated by a space (To establish end of input: 'X'): ");
        while(scan.hasNextInt()){
            newSet.numbers.add(scan.nextInt());
        }

        sets.add(newSet);
    }
    else if(number == 2){
        //code
    }
    //etc.
}

关于java - 在 Java 中使用列表来存储用户输入并执行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28072076/

相关文章:

java - 意外的 AST 节点 : . 靠近第 1 行,第 63 列 [更新 com.sathya.entity.Employee e set e.empSal=10000 where e.deptNumber]

java群发邮件发件人

python - python 列表中不太常见的单词

arrays - 如何在 Haskell 中使用 DiffArray?如何使这段代码更严格?

c# - 搜索速度快、体积小的数据结构

php如何生成动态list()?

java - 在 Grails 中使用 Hibernate Annotated Java 类时的日期问题

java - MyBatis 3 - 从映射器获取 SQL 字符串

java - 如何初始化一个二维数组?

javascript 数组通过键删除