2017-05-30 76 views
0

所以我有一个Arraylist持有一个类,如下面的代码所示。打印数组列表中的特定部分

NewStorage.java是文件名包含以下

package postit; 

import java.util.ArrayList; 
import java.util.Scanner; 

public class NewStorage extends NoteInfomation { 

    Scanner inputID = new Scanner(System.in); 
    Scanner NoteID = new Scanner(System.in); 

    int count = 0; 

    ArrayList<NoteInfomation> Note = new ArrayList<NoteInfomation>(20); 

    public void printinfo() { 
     System.out.println("--- Fill note here ---"); 
    } 

    public void Notestore() { 

     System.out.println("Enter the note ID you wish to attach the note with\n\n"); 
     inputIDnote = inputID.nextLine(); 
     System.out.println("Enter your note\n\n"); 
     noteDescription = NoteID.nextLine(); 
     System.out.println("" + inputIDnote); 
     System.out.println("" + noteDescription); 
    } 

    public void PrintNotes() { 

     for (int i = 0; i < Note.size(); i++) { 
      System.out.println(" " + Note.get(i)); 

     } 
    } 
} 

所示的代码请看下面

package postit; 

import java.util.Scanner; 

public class Postit { 

    public static void main(String[] args) { 
     int MenuOption = 0; 

     NewStorage G = new NewStorage(); // Case 1 Object 

     while (MenuOption != 3) { 

      System.out.println(
        "\n--------Note System-------\n" + 
          "----------------------------\n" + 
          "1. Create a Note \n" + 
          "2. View Notes \n" + 
          "3. Close Program\n" + 
          "----------------------------\n" 
      ); 

      Scanner menu = new Scanner(System.in); 
      MenuOption = menu.nextInt(); 

      switch (MenuOption) { 
       case 1: 
        G.printinfo(); 
        G.Notestore(); 
        break; 
       case 2: 
        G.PrintNotes(); 
        break; 
       case 3: 
        System.out.println("Program is closing"); 
        System.exit(0); 
        break; 
       default: 
        System.out.println("Invalid choice."); 
        break; 
      } 
     } 
    } 
} 

命名Postit.java主文件最后,这是note.java文件,其中包含了NoteInfomation用于数组的类。

package postit; 

class NoteInfomation { 
    String inputIDnote; 
    String noteDescription; 
} 

所以,我的问题是,如图所示的代码程序应该问他们想得分配自己的笔记内容记ID的用户。然后用户可以通过输入相应的笔记ID来查看他们创建的笔记。理想情况下,当我建立在程序上时,我还希望程序让用户从之前创建的ID列表中选择,以记住创建的笔记的ID,这不是问题。提前致谢。

+2

你的问题不清楚。期望的行为/输出是什么? – SomeDude

+0

对不起,输出应该是一样的东西,一旦用户在切换案例菜单中选择案例2,然后它应该显示一个编号的列表中创建的所有ID。然后,一旦选择了它,它将显示相应的音符。 –

+0

“最后这是包含NoteInfomation类的note.java文件”类名不能与文件名不同。你的文件是'note.java' - >那么你的类必须是'note' –

回答

1

代码中有很多错误。您没有在Notestore()方法中存储任何注释。 PrintNode()也不起作用。

更改您的代码是这样的..

NoteInfomation.java

class NoteInfomation { 
    String inputIDnote; 
    String noteDescription; 
    public NoteInfomation(String inputIDnote, String noteDescription) { 
     this.inputIDnote = inputIDnote; 
     this.noteDescription = noteDescription; 
    } 
    @Override 
    public String toString() { 
     return "Id:" + inputIDnote + ", Description: " + noteDescription; 
    } 
} 

Nodestore()方法...

public void Notestore() { 

    System.out.println("Enter the note ID you wish to attach the note with\n\n"); 
    String inputIDnote = inputID.nextLine(); 
    System.out.println("Enter your note\n\n"); 
    String noteDescription = inputID.nextLine(); //No need for two scanner 
    System.out.println("" + inputIDnote + "\n" + noteDescription); 
    Note.add(new NoteInfomation(inputIDnote, noteDescription)); 
} 

PrintNotes()方法

public void PrintNotes() { 

    for (int i = 0; i < Note.size(); i++) { 
     System.out.println(" " + Note.get(i).toString()); 

     //**or you can also use this 
     // System.out.println("Id:" + Note.get(i).inputIDnote + ", Description: " + Note.get(i).noteDescription); 

    } 
} 

我鼓励你研究如何ArrayList的作品。

+0

是的,对Java编程来说很新,但我会接受你的建议。谢谢您的帮助。 –