2015-04-25 63 views
1

對於大學來說,我至少對我來說是一件棘手的事情。 我必須在保存其他LinkedList的地方創建一個LinkedList。LinkedList中的Java LinkedList - 訪問項目

在這些Linkedlist中保存了文本模式,我想用特定的命令改變它們。但是,我不知道如何訪問這些LinkedListes。如果我使用.get,我只接收保存的LinkedList作爲對象。我發現沒有辦法讀取保存在這個對象或更早的LinkedList中的項目。

LinkedList listrows = new LinkedList(); 
LinkedList listcolumn1 = new LinkedList(); 
LinkedList listcolumn2 = new LinkedList(); 

listcolumn1.add("test"); 
listcolumn1.add("test"); 
listcolumn2.add("hello"); 
listcolumn2.add("hello"); 

listrows.add(listcolumn1); 
listrows.add(listcolumn2); 

//here is my problem now, I cannot save it as a LinkedList 
//because linkedlist is giving back an object 
LinkedList listedit= new LinkedList(); 
listedit=listrows.get(0) //<-error 

//If I use syso, only the object name is printed 
System.out.println(listrows.get(0)) //Printed e.g.: [Ljava.lang.String;@55f96302] 

預先感謝您的幫助!

+0

你應該閱讀在http://stackoverflow.com/tags/java/info給予特別是一個關於仿製藥HTTP的文章://在發佈問題之前,先閱讀docs.oracle.com/javase/tutorial/java/generics。 – muued

回答

3

你應該聲明你所需要的確切類型:

LinkedList<LinkedList<String>> listrows = new LinkedList<>(); 
LinkedList<String> listcolumn1 = new LinkedList<>(); 
LinkedList<String> listcolumn2 = new LinkedList<>(); 

然後:

LinkedList<String> listedit = listrows.get(0); 

你的問題是,你使用的原料LinkedList類型,所以listrows.get(0)返回Object類型的實例,而不是內部LinkedList

+0

謝謝......真的很掙扎! – Joker3139

0

你必須這樣做,根據通用編程概念,

LinkedList<String> lt1=new LinkedList<String>(); 
     LinkedList<String> lt2=new LinkedList<String>(); 
     LinkedList< LinkedList<String>> lt=new LinkedList< LinkedList<String>>(); 

     lt1.add("One"); 
     lt1.add("Two"); 
     lt1.add("Three"); 

     lt2.add("A"); 
     lt2.add("B"); 
     lt2.add("C"); 

     lt.add(lt1); 
     lt.add(lt2); 

     System.out.println(""+lt.get(0));