【发布时间】:2018-09-08 19:18:25
【问题描述】:
我正在尝试使用邻接列表来实现有向图,其中使用了链表数组。我得到了warning: [unchecked] unchecked conversion,但它运行良好。
import java.util.*;
public class traversal{
static class adList{
private int vertices;
private LinkedList<Integer> vertex[];
adList(int V){
vertices=V;
vertex = new LinkedList[V];
for(int i=0;i<V;i++)
{
vertex[i] = new LinkedList<Integer>();
}
}
public void insertAlist(int start,int end)
{
//add an edge from source to destination
vertex[start].addFirst(end);
//add an edge from dest to source
//ob.vertex[end].addFirst(start);
}
public void printAlist()
{
for(int i=0;i<vertices;i++)
{
System.out.print("Node "+ i + " HAS THE CONNECTION WITH NODES ");
for(Integer x:vertex[i])
{
System.out.print(x+" ");
}
System.out.println();
}
}
}
public static void main(String[] args)
{
adList ob = new adList(4);
ob.insertAlist(2,3);
ob.insertAlist(2,0);
ob.insertAlist(0,2);
ob.insertAlist(0,1);
ob.insertAlist(1,2);
ob.insertAlist(3,3);
ob.printAlist();
}
}
我收到以下警告。
.\traversal.java:15: warning: [unchecked] unchecked conversion
vertex = new LinkedList[V];
^
required: LinkedList<Integer>[]
found: LinkedList[]
1 warning
我试过LinkedList<Integer>[],但也没有用。
为什么我会收到此错误?我该如何解决这个问题?
【问题讨论】:
-
我发现了一个可能对您有帮助的类似问题。 stackoverflow.com/questions/5317443/java-unchecked-conversion
-
不要混合使用数组和泛型。只需使用列表列表,而不是列表数组。
-
哦,我更喜欢@AndyTurner 的回答。如果可以,请改用
List<List<Integer>>。