如何将ArrayList操作到程序中,以便每个项目都可以单独使用



ArrayList是从一个文件中创建的,没有任何问题。当创建一个显示结果的方法时,这是Helper类中代码的一部分。我知道我不能对数组列表使用.toString((,但我不知道如何使用它。

原始代码:

public static void display(ArrayList<String> shapes) throws FileNotFoundException{
ArrayList<String> list = new ArrayList<String>();
Scanner input = new Scanner(ArrayList.toString(list)); //This is the problem line.
while(input.hasNext()){
String chosenShape = input.nextLine();
switch (chosenShape.toLowerCase())
{
case "rectangle":
Rectangle rectangle = new Rectangle();
rectangle.name = input.nextLine();
rectangle.setWidth(input.nextDouble());
rectangle.setLength(input.nextDouble());
System.out.print(rectangle);
break;

更新代码:

public static void display(ArrayList<String> shapes) throws IOException, FileNotFoundException{
java.util.List<String> list = Arrays.asList("rectangle", "circle","triangle");

for(int i = 0; i<list.size(); i++)
switch (list.get(i).toLowerCase())
{
case "rectangle":
Rectangle rectangle = new Rectangle();
rectangle.name = list.get(i+1);
rectangle.setWidth(Double.valueOf(list.get(i+2)));
rectangle.setLength(Double.valueOf(list.get(i+3)));
System.out.print(rectangle);
i = (i+3);
break;

给出的错误:线程"main"java.lang.NumberFormatException中的异常:对于输入字符串:"triangle"。当我去掉"三角形"的时候。。。线程"main"java.lang.ArrayIndexOutOfBoundsException异常:2

尝试:

public static void main(String[] args) {
List<String> list = Arrays.asList("circle", "rectangle");
for(int i=0; i<list.size(); i++ ) {
switch(list.get(i).toLowerCase())
{
case "rectangle":
// Your rectangle code
break;
case "circle":
// Your circle code
break;
default: System.out.println("Default");
}
}
}

或者您可以使用Java 8 ArrayList foreach():

list.forEach(s -> {
switch(s.toLowerCase())
{
case "rectangle":
// Your rectangle code
break;
case "circle":
// Your circle code
break;
default: System.out.println("Default");
}
});

或者你也可以使用增强的for循环:

for(String s: list) {
switch(s.toLowerCase())
{
case "rectangle":
// Your rectangle code
System.out.println("t");
break;
case "circle":
// Your circle code
break;
default: System.out.println("Default");
}
}

注意:您需要对arraylist的每个元素进行迭代。Scanner用于获得用户输入。

相关内容

最新更新