这是我第一次为这个程序使用列表。目标是避免在Java中使用Set集合接口,而是使用List接口。
我目前正在进行第一部分的工作,允许用户创建一个步骤。但是,我不知道程序将如何存储整数,然后提取每个集合(使用用户设置的名称)来对它们执行操作。
我在底层提供了项目需求,但我更希望了解列表是如何工作的,以及如何最好地实现它们以执行正确的操作,而不是对如何完成项目有一个答案。
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集合。您应该使用列表(详细信息)。“
发布于 2015-01-21 16:34:50
您应该创建一个包含2个类变量的NumberSet类:
String nameArrayList<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。
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.
}https://stackoverflow.com/questions/28072076
复制相似问题