java编程错误:需要数组,但找到 java.util.ArrayList

public class Library{
static ArrayList<Book> a = null;
public static void main(String[] args) {
a.add(new Book(0,109));
a.add(new Book(1,66));
Book b = a[1];

这是程序中的一小段,Book是自建的一个类。编译时提示说上面的最后一句“需要数组,但找到 java.util.ArrayList<Book>”,何解?是否不能用这种方式来引用arraylist中的元素?

从上到下:
首先把ArrayList<Book> a = null;修改为;List<Book> a = new ArrayList<Book>;
其次,要把a.add(new Book(1,66));后面的(1,66));括号换成半角符号,而不是全角。也就是我们所说的英文标点符号而不是汉文标点符号。
最后,Book b = a.get(1);
希望采纳,谢谢。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-17
对你上面的问题,首先定义链表a出现了问题,不能直接指定为null,应该:
static ArrayList<Book> a=new ArrayList<Book>();
其次,最后一句引用list中的下标为1的元素正确的为:Book b=a.get(1);
这样就不会错了。
第2个回答  2011-08-17
a对象没初始化 ,还有a[1]是数组的写法,因为a是集合的对象,获取list集合应该是
Book b=a.get(1);
第3个回答  2011-08-17
ArrayList<Book> a = new ArrayList<Book>();

Book b = a.get(1);

如果需要用数据,a.toArray()可以变换成数组来用。
第4个回答  2011-08-17
应该用a.get(1),不能像数组那里拿ArrayList的值

java编程错误:需要数组,但找到 java.util.ArrayList
首先把ArrayList<Book> a = null;修改为;List<Book> a = new ArrayList<Book>;其次,要把a.add(new Book(1,66));后面的(1,66));括号换成半角符号,而不是全角。也就是我们所说的英文标点符号而不是汉文标点符号。最后,Book b = a.get(1);希望采纳,谢谢。

求教:java.util.ArrayListjava.lang.NumberFormatException: For inp...
要修正这个错误,你需要找到代码中尝试将字符串转换为数字的位置,并检查该字符串是否包含不能被解析为数字的字符。如果是这样,你需要修改字符串,以便它可以被解析为数字。例如,如果你尝试使用 Integer.parseInt() 将字符串 "5abc" 转换为数字,则会出现类似于 "For input string: "5abc"" 的错误...

ArrayList 用 get(i) 访问元素时可能遇到的问题 (required: variable...
在leetcode遇到了一个使用ArrayList的get方法访问元素时的常见问题。通常,我们会用get方法代替下标访问数组元素,但它们并非完全等同。错误代码如下:报出的错误原因是:错误信息"required: variable, found: value"表示这里需要一个变量,却找到了一个值,因此无法完成赋值。理解原因是,get方法返回元素对象...

在新建虚拟机时出现问题?
(1)class name是java类的完全限定名,如:java.lang.String,java.util.ArrayList, C是char数组,java.io.File是java.io.File[] (2)类的完全限定名不足以唯一的辨识一个类,因为不同的ClassLoader载入的相同的类,它们在jvm中是不同类型的 (3)instanceof表示也查询某一个类的子类,如果不明确instanceof,则只精确...

java集合问题
当你事先不知道要存放数据的个数,或者你需要一种比数组下标存取机制更灵活的方法时,你就需要用到集合类。理解集合类 集合类存放于java.util包中。 集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。 集合类型主要有3种:set(集)、list(列表)...

ArrayList<String> a[]; --- 中 <> 代表什么?
import java.util.ArrayList; import java.util.List; public class GenericsExample { public static void main(String[] args) { Integer[] integer = new Integer[5]; Number[] number = integer; System.out.println(number[0]);\/\/ null number[0] = new Float(7.65); System.out.println(number[0]...

noclassdeffounderror由静态变量或静态块引起的解决办法
简单总结就是,NoClassDefFoundError发生在编译时对应的类可用,而运行时在Java的classpath路径中,对应的类不可用导致的错误。发生NoClassDefFoundError错误时,你能看到如下的错误日志: Exception in thread "main" java.lang.NoClassDefFoundError 错误的信息很明显地指明main线程无法找到指定的类,而这个main线程可能时主线程或者...

java编程,从键盘录入10个整数数据,将每次录入的数据按从小到大的顺序...
import java.util.Scanner;public class ZhuLei { \/\/思路:定义一个程度为10的整型数组。一次录入10个整数。\/\/每个整数,找到自己该插入的位置,然后后面的元素全部后移即可。public static void main(String[] args){ int[] a=new int[10];int count=1;Scanner scan=new Scanner(System.in);whi...

JAVA中的List、Vector、ArrayList的差异
一、Vector和ArrayList的实现 Vector和ArrayList都带有一个底层的Object[]数组,这个Object[]数组用来保存元素。通过索引访问元素时,只需简单地通过索引访问内部数组的元素:public Object get(int index){ \/\/首先检查index是否合法...此处不显示这部分代码 return elementData[index]; } 内部数组可以大于...

java(不能运行)
针对你的问题,你可以尝试把原来的jdk全部卸载了,然后重新安装一遍最新的jdk1.6.0_up16,这样在安装过程中应该自动把环境变量都配置好了。其实每次你安装jdk,安装程序都会自动配置好环境变量,不用手动修改。但是其他一些比较sb的java开发工具(尤其注意数据库软件),往往比较自私,在安装的过程中自己...

相似回答