首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Java中的列表存储用户输入和执行任务

使用Java中的列表存储用户输入和执行任务
EN

Stack Overflow用户
提问于 2015-01-21 16:25:17
回答 1查看 1.6K关注 0票数 0

这是我第一次为这个程序使用列表。目标是避免在Java中使用Set集合接口,而是使用List接口。

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

我在底层提供了项目需求,但我更希望了解列表是如何工作的,以及如何最好地实现它们以执行正确的操作,而不是对如何完成项目有一个答案。

代码语言:javascript
复制
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) union 5)相交6)减法7)退出请输入命令号>

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

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

EN

回答 1

Stack Overflow用户

发布于 2015-01-21 16:34:50

您应该创建一个包含2个类变量的NumberSet类:

  • 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的列表。这将跟踪所有用户创建的NumberSets。

代码语言:javascript
复制
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.
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28072076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档