2013-03-27 25 views
0

我新到JAVA,我想实现一个简单的链接列表代码在java中使用java.util.LinkedList库和动态数据类型(类)错误 - “数组需要,但链接列表<LLObj>发现”在java

的代码如下 - 在编译收到

import java.util.LinkedList; 
import java.util.Scanner; 

//defining a custom data-type (class) 
class LLObj{ 
static int NodeInt; 
static char NodeChar; 
LLObj(int x, char y){ 
    NodeInt = x; 
    NodeChar = y; 
    } 
} 

//main class  
public class LL2{ 

static int ChosenOption, TempInt, NodeCounter, TempCounter; 
static char TempChar; 

//creating scanner object 
static Scanner ScannerObj = new Scanner(System.in); 

//creating a link list 
static LinkedList<LLObj> list = new LinkedList<>(); 

//main function 
public static void main(String[] args){ 

    NodeCounter = 0; 

    //driving menu 
    for(;;){ 
    System.out.println("Enter 1 to add a node to linked list"); 
    System.out.println("Enter 2 to print the current list"); 
    ChosenOption = ScannerObj.nextInt(); 
    if(ChosenOption == 1){ 
     AddNew(); 
     } 
    else if(ChosenOption == 2){ 
     PrintList(); 
     } 
    else{ 
     System.out.println("Wrong Input. Try again!"); 
     } 
    } 
} 

//AddNew function 
public static void AddNew(){ 

    //getting input 
    System.out.println("Enter integer"); 
    TempInt = ScannerObj.nextInt(); 
    System.out.println("Enter character"); 
    TempChar = ScannerObj.next().charAt(0); 

    //Making a temperory node 
    LLObj temp = new LLObj(TempInt,TempChar); 

    //adding node to the list 
    list.addLast(temp); 
    } 

public static void PrintList(){ 
    TempCounter = 0; 
    while(TempCounter < NodeCounter){ 
     System.out.println(list[TempCounter].NodeInt); 
     System.out.println(list[TempCounter].NodeChar); 
     System.out.println(""); 
     TempCounter++; 
     } 
    }  
} 

的错误是 - “所需的数组,但LinkedList的发现”

请帮我在 1.领会为什么会产生这个错误 2.删除此错误

任何帮助将不胜感激:)

+0

尝试redefinig私人静态列表列表=链表(); – 2013-03-27 08:40:28

回答

3

一个LinkedList不具有[]操作:

System.out.println(list[TempCounter].NodeInt); 
        //^^incorrect^^ 

使用LinkedList.get(int index)enhanced for loop遍历所有元素list

+0

格式比我的答案要好得多:P P.S.您可能想要将您的列表声明更改为“static LinkedList list = new LinkedList ();” – 2013-03-27 08:44:51

2

使用list.get(TempCounter).NodeInt代替