2011-08-29 28 views
2

我已經被賦予了一個賦值來實現ArrayList和LinkedList而不使用泛型。問題在於insertnode()方法。儘管我嘗試使用掃描程序從命令行讀取,但該方法無需等待即可返回。不使用泛型的ArrayList java程序

import static java.lang.System.out; 
import java.util.Scanner; 
class Arraylist 
{ 
public static final int LIST_SIZE=30; 
static Scanner input = new Scanner(System.in); 
static Object list[]; 
static int top = -1; 
static int typeoflist; 
public static void displaymenu() 
{ 
    int choice; 
    do{ 
     out.print("\n Basic operations on a linked list:"); 
     out.print("\n 1. Create list \n 2. Insert node \n 3. Delete node \n 4. Modify node \n 5. Search value \n 6. Print list\n Else. Exit \n Choice:"); 
     choice = input.nextInt(); 
     switch(choice) 
     { 
      case 1: 
       list = createlist(); 
       break; 
      case 2: 
       insertnode(); 
       break; 
      case 3: 
       //deletenode(); 
       break; 
      case 4: 
       //modifynode(); 
       break; 
      case 5: 
       //searchnode(); 
       break; 
      case 6: 
       printlist(); 
       break; 
      default: 
       return; 
     }  
    }while(true); 
} 
public static Object[] createlist() 
{ 
    int typeoflist; 
    out.println("Enter your choice of list datatype: \n 1. int \n 2. float \n 3. char \n 4. String \n 5. UserDefined \n Choice:"); 
    typeoflist = input.nextInt(); 
    switch(typeoflist) 
    { 
     case 1: 
      list = new Integer[LIST_SIZE]; 
      break; 
     case 2: 
      list = new Float[LIST_SIZE]; 
      break; 
     case 3: 
      list = new Character[LIST_SIZE]; 
      break; 
     case 4: 
      list = new String[LIST_SIZE]; 
      break; 
    } 
    return (Object[])list; 
} 
public static void insertnode() 
{ 
    Object o; 
    top++; 
    out.println("Enter the value to insert:"); 
    switch(typeoflist) 
    { 
     case 1: 
      o = (Integer)input.nextInt(); 
      list[top] = o; 
      break; 
     case 2: 
      o = (Float)input.nextFloat(); 
      list[top] = o; 
      break; 
     case 3: 
      //o = (Character)input.next(); // 
      //list[top] = o; 
      break; 
     case 4: 
      o = (String)input.next(); 
      list[top] = o; 
      break; 
    } 
} 
public static void printlist() 
{ 
    for(int i =0; i<top; i++) 
    { 
     out.println(list[i]); 
    } 
} 
public static void main(String[] args) 
{ 
    displaymenu(); 
} 
} 

回答

3

提示:typeoflistcreateList()被隱藏靜態成員變量。

+0

謝謝。解決了它。 – John

+0

現在我需要嘗試與LinkedList相同。隨着所有的演員,它會變得複雜的我! – John