这是我第一次将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());
}
}
}
&#34;在这个项目中,你将使用集合。你应该编写一个Java程序 允许用户创建集合并对它们执行一些简单的操作,包括union, 交叉和减法。 执行时,程序应向用户显示菜单并提示用户 输入命令(菜单中的数字)。您的菜单应该类似于: 1)创建一个集合。 2)打印创建的列表 3)打印一套 4)联盟 5)交叉口 6)减法 7)退出 请输入命令编号&gt;
用户输入命令后,程序将执行特定任务。任务完成后,程序应打印菜单和 等待一个新命令。
注意: 集合应该只包含整数值。 用户可以创建的集合数量和数量应该没有限制 一组中的元素。 用户可以输入任何名称来访问集合或对它们执行操作。 您的程序应始终检查所请求的集是否存在。 该程序应该处理空集,即没有元素的集。例如,要创建空集,用户可以输入“X”而不提供任何整数值。 集合不能具有重复值。集合中的所有元素必须是唯一的。 你的程序永远不会崩溃。 您不得在此项目的Collection接口中使用Java的Set。 您应该使用List(详情如下)。&#34;
答案 0 :(得分:1)
你应该创建一个包含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。
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.
}