import java.util.*;
class Author
{
String name;
BookList books=new BookList();
Author(String name)
{
this.name=name;
}
}
class BookList extends LinkedList
{
BookList()
{
super();
}
protected void display()
{
for(int i=0;i<size();i++)
System.out.println(get(i).toString());
}
}
class AuthorList extends LinkedList
{
AuthorList()
{
super();
}
protected void display()
{
for(int i=0;i<size();i++)
System.out.println(get(i).toString());
}
}
class Library
{
static AuthorList[] Authors=new AuthorList[((int)('Z'-'A'))+1];
static void status()
{
System.out.println("Library has the following books\n");
for(int i=0;i<(int)('Z'-'A')+1;i++)
{
if(Authors[i]!=null)
Authors[i].display();
}
}
public static void main(String[] args)
{
String[] authorname=new String[]{"Zhangjj","Awang","Chenwei","Fwangguang","Tom adisty","Sunxin","Yang tiyan"};
String name=null;
for(int i=0;i<authorname.length;i++)
{
name=authorname[i];
Author au1=new Author(name);
Authors[(int)(name.charAt(0)-'A')].add(au1);
}
status();
}
}本人大意是: 图书馆同一个作者可能出好几本书这些书就有一个链表来存放.所以就在Author里加个BookList作者名字第一个字母相同则用一个链表来存放.名字第一个字母是A-Z所以就一个链表数组.(不知这样可否)AuthorList[] Authors=new AuthorList[((int)('Z'-'A'))+1];不同作者加到不同的链表里而我在加入作者到相应的作者链表时,却发生了空指针异常Exception in thread "main" java.lang.NullPointerException于是我就用Authors[0].add(new Integer(5)) 来测试一下,结果还是发生了同样的错误,小弟实在不解,是不是不能用链表数组呢?AuthorList[] Authors=new AuthorList[((int)('Z'-'A'))+1];希望各位给以指点~~
class Author
{
String name;
BookList books=new BookList();
Author(String name)
{
this.name=name;
}
}
class BookList extends LinkedList
{
BookList()
{
super();
}
protected void display()
{
for(int i=0;i<size();i++)
System.out.println(get(i).toString());
}
}
class AuthorList extends LinkedList
{
AuthorList()
{
super();
}
protected void display()
{
for(int i=0;i<size();i++)
System.out.println(get(i).toString());
}
}
class Library
{
static AuthorList[] Authors=new AuthorList[((int)('Z'-'A'))+1];
static void status()
{
System.out.println("Library has the following books\n");
for(int i=0;i<(int)('Z'-'A')+1;i++)
{
if(Authors[i]!=null)
Authors[i].display();
}
}
public static void main(String[] args)
{
String[] authorname=new String[]{"Zhangjj","Awang","Chenwei","Fwangguang","Tom adisty","Sunxin","Yang tiyan"};
String name=null;
for(int i=0;i<authorname.length;i++)
{
name=authorname[i];
Author au1=new Author(name);
Authors[(int)(name.charAt(0)-'A')].add(au1);
}
status();
}
}本人大意是: 图书馆同一个作者可能出好几本书这些书就有一个链表来存放.所以就在Author里加个BookList作者名字第一个字母相同则用一个链表来存放.名字第一个字母是A-Z所以就一个链表数组.(不知这样可否)AuthorList[] Authors=new AuthorList[((int)('Z'-'A'))+1];不同作者加到不同的链表里而我在加入作者到相应的作者链表时,却发生了空指针异常Exception in thread "main" java.lang.NullPointerException于是我就用Authors[0].add(new Integer(5)) 来测试一下,结果还是发生了同样的错误,小弟实在不解,是不是不能用链表数组呢?AuthorList[] Authors=new AuthorList[((int)('Z'-'A'))+1];希望各位给以指点~~
你虽然声明了,但是数据内的每个对像为null;
你必须初使化一下,改为下面代码:static AuthorList[] Authors=new AuthorList[((int)('Z'-'A'))+1];
static{
for(int i=0;i<(int)('Z'-'A')+1;i++)
{
Authors[i]=new AuthorList();
}}