我正在尝试使用邻接列表(其中使用链接列表的数组)来实现有向图。我收到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>[]
,但是也没有用。
为什么会出现此错误?我该如何解决?
答案 0 :(得分:-3)
您还需要将通用类型添加到行中
vertex = new LinkedList[V];
所以它应该读
vertex = new LinkedList<Integer>[V];
在类型系统可以确定应该是哪种类型的情况下,您可以使用Diamond运算符忽略实际类型,因此您也应该能够做到
vertex = new LinkedList<>[V];
有关取消选中的类型转换的更多信息,请查看:Java unchecked conversion