2014-10-10 79 views
0

我試圖鏈接列表轉換爲Java數組如下面的代碼中鏈表數組中的Java

import java.io.*; 
import java.util.*; 

public class LinkedLst 
{ 
    public static void main(String[] args) throws IOException 
    { 
     FileInputStream fis = new FileInputStream("input"); 
     LinkedList<Integer> ll = new <Integer>LinkedList(); 
     int c; 
     while((c = fis.read())!=-1) 
      ll.add(new Integer(c)); 
     Integer[] arr = ll.toArray(new Integer[ll.size()]); 
     System.out.println(arr); 
     fis.close(); 
    } 
} 

與輸入文件如下

12 
13 
14 
15 
16 

我能夠編譯但我最終在運行時出現以下錯誤

[Ljava.lang.Integer;@2098746b 

有人能幫我解決這個問題嗎?

+0

的錯誤是由於整數[] ARR = ll.toArray(新的整數[ll.size()]);代碼行 – Ashok 2014-10-10 10:17:49

+0

是錯誤還是代碼工作並提供輸出?你不能打印這樣的數組。相反,遍歷它的索引並單獨打印它們。 – 2014-10-10 10:18:18

+0

我搜索了其他線程,但他們的解釋並沒有糾正我的錯誤 – Ashok 2014-10-10 11:08:02

回答

0

這是不是一個錯誤,爪哇的設計者是怎麼想的,你可能想打印數組:P

您需要打印Arrays.toString(arr)得到的東西理智。或者你可以把它作爲一個列表。

順便說一句,你是不讀的4個字節的int值時,實際上是讀無符號字節(0-255)

如果你想讀一個文件作爲字節數組,一個更簡單的方法是做。

FileInputStream fis = new FileInputStream("input"); 
byte[] bytes = new byte[fis.available()]; 
fis.read(bytes); 
fis.close(); 

這將使用的存儲器的一小部分一LinkedList<Integer>將使用(約1 /第40次)和快很多。