首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中创建链表数组?

如何在java中创建链表数组?
EN

Stack Overflow用户
提问于 2013-11-26 04:42:51
回答 2查看 98.3K关注 0票数 15

所以我需要接受二部图的边的输入,如下所示:

代码语言:javascript
运行
复制
6
1 3
1 2
1 5
2 7
2 4
2 9

第一个数字是边数。然后列出边。例如,顶点1有多条不同的边,我想跟踪1连接到什么,我认为图的每个顶点都有某种类型的顶点列表,这导致我尝试创建一个链表数组,但我不确定如何做到这一点。我试过了

代码语言:javascript
运行
复制
LinkedList<Integer>[] vertex = new LinkedList[5];
int i = 0, m = 6;
while(i!=m){
    int temp = sc.nextInt();
    int temp2 = sc.nextInt();
    vertex[temp].add(temp2);
    i++;
}

但是我在add行得到了一个nullpointerexception。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-26 04:58:09

代码语言:javascript
运行
复制
LinkedList<Integer>[] vertex = new LinkedList[5];
int i = 0, m = 6;
while(i!=m){
  int temp = sc.nextInt();
  int temp2 = sc.nextInt();

  // Make sure the list is initialized before adding to it
  if (vertex[temp] == null) {
     vertex[temp] = new LinkedList<Integer>();
  }

  vertex[temp].add(temp2);
  i++;
}
票数 29
EN

Stack Overflow用户

发布于 2016-08-11 05:23:05

代码语言:javascript
运行
复制
//initialize array
LinkedList<Integer>[] vertex = new LinkedList[5];
//initialize array elements(objects of LinkedList)
for (int j=0; j<5; j++)
    vertex[i]=new LinkedList<Integer>();

int i = 0, m = 6;
while(i!=m){
    int temp = sc.nextInt();
    int temp2 = sc.nextInt();
    vertex[temp].add(temp2);
    i++;
}

通常,Java中不鼓励使用数组。或者,您可以使用以下命令:

代码语言:javascript
运行
复制
//initialize array
List<LinkedList<Integer>> vertex = new ArrayList<LinkedList<Integer>>();
//initialize arraylist elements(objects of LinkedList)
for (int j=0; j<5; j++)
    vertex.add(new LinkedList<Integer>());
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20202889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档