gpt4 book ai didi

java - ArrayList 中的 ArrayList - 访问值时遇到问题

转载 作者:行者123 更新时间:2023-12-04 05:21:14 25 4
gpt4 key购买 nike

所以这是我的方法:

public static ArrayList collectSchedule(ArrayList schedule, ArrayList list, int counter)
{
((ArrayList) list.get(counter)).add(schedule);
System.out.println(list);
return list;
}
public static ArrayList getClassInfo(int count)
{
Scanner stdIn = new Scanner (System.in);
String userInput;
System.out.print("Enter the name of class #" + count + " : ");
userInput = stdIn.nextLine();
ArrayList x = getClassTime();
x.add(0, userInput);
x.add(1, getClassLength());
x.add(2, getDayOfTheWeek());
return x;
}

因此,我从 getClassInfo(它是一个 ArrayList)中获取值“x”,并将它与一个数字(我想要它的位置的索引)和另一个 ArrayList(我们称之为“schedule”)一起输入到方法 collectSchedule 中。我将“x”(ArrayList)添加到 ArrayList“schedule”。如果我打印出“x”,它将显示“schedule”的所有值。 (注意:我添加了多个不同的“x”实例来安排!)。因此,如果我将 3 个不同的“x”添加到“schedule”,它将分别打印出来( [x, x, x][x, x, x][x, x, x] )。我在从“schedule”中只获得一个“x”值时遇到了麻烦。

我认为这段代码可以工作,但它在编译时给了我一个错误。
public static void creation(ArrayList list)
{
System.out.println((schedule.get(0)).x().get(1));
}

谁能帮助我哪里出错了?
我读了一些关于使用对象的东西?但不确定如何!

谢谢!

最佳答案

如果您开始使用泛型,即 List<List<String>> myList,您会发现使用集合会容易得多。 .此外,为什么不创建一些实际的类来存储类型值而不是依赖索引列表?

那一边……

System.out.println((schedule.get(0)).x().get(1));

如果 schedule 的类型是 ArrayList,那么 schedule.get(0) 将返回 Object 类型的内容,除非您执行显式转换。由于 Object 没有方法 x() 会产生错误。您通常可以通过不在一行中包含如此多的链式函数调用来缩小这些内容的范围。这样做会导致很难分辨给定的错误所指的是什么。

如果计划被声明为 List<List<String>>甚至 List<List<Object>>那么你就可以做到这一点:
List<String> classInfo = schedule.get(0);
String classLength = classInfo.get(1);
System.out.println(classLength);

我认为这就是你真正的目标

关于java - ArrayList 中的 ArrayList - 访问值时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13666419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com