这是我第一次将List用于该程序。目的是避免在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)联盟
5)交叉路口
6)减法
7)退出
请输入命令编号>
用户输入命令后,您的程序将执行特定任务。任务完成后,您的程序应打印回菜单,然后
等待一个新命令。
注意:
这些集应仅包含整数值。
用户可以创建的集合数量和数量应该没有限制
一组元素的集合。
用户可以输入任何名称来访问集或对其进行操作。
您的程序应始终检查请求的集是否存在。
程序应处理空集,即没有元素的集。例如,要创建一个空集,用户可以输入“ X”而不提供任何整数值。
集合不能有重复的值。集合中的所有元素必须唯一。
您的程序应永远不会崩溃。
您不得为此项目使用Collection接口中的Java Set。
您应该使用列表(下面的详细信息)。”
最佳答案
您应该创建一个包含两个类变量的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
的列表。这将跟踪所有用户创建的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.
}