Java ArrayList内部的ArrayList-访问值时出现问题
以下是我的方法:Java ArrayList内部的ArrayList-访问值时出现问题,java,multidimensional-array,arraylist,Java,Multidimensional Array,Arraylist,以下是我的方法: 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) {
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));
}
谁能帮我找出哪里出了问题?
我读了一些关于使用对象的东西?但不知道怎么做
谢谢 如果您开始使用泛型,即
列出myList
,您会发现使用集合要容易得多。另外,为什么不创建一些实际的类来存储类型化的值,而不是依赖索引列表呢
除此之外
System.out.println((schedule.get(0)).x().get(1));
如果schedule的类型是ArrayList,那么schedule.get(0)将返回Object类型的内容,除非执行显式转换。因为对象没有将生成错误的方法x()。通常,您可以通过在一行中不包含这么多链接函数调用来缩小这一范围。这样做很难判断给定的错误指的是什么
如果计划被声明为List
或甚至List
,则您可以执行以下操作:
List<String> classInfo = schedule.get(0);
String classLength = classInfo.get(1);
System.out.println(classLength);
List classInfo=schedule.get(0);
字符串classLength=classInfo.get(1);
System.out.println(类长度);
我认为这正是您真正的目标如果您开始使用泛型,即List myList,您会发现使用集合要容易得多。