2012-04-20 12 views
0

私は、ArrayListからデータを格納、更新、検索、および削除するプログラムを実行しています。私の問題は、ArrayListからデータを取得できないことです。私はJavaで新しいので、私を助けてください。データベースのようなarraylist機能はありますか?

私は以下に述べるもののリストを表示したいと思います。

public Subject(int id, String name, int marks){ 
    subId = id; 
    subName = name; 
    subMarks = marks; 
} 

public void show(){ 
    System.out.println("1.Insert" + "\n" + "2.Search" + "\n" + "3.Update" + "\n" + "4.Delete" + "\n" + "5.Back"); 
    try{ 
     select = Integer.parseInt(br.readLine()); 
    } 
    catch(Exception e){ 
     System.out.println(e); 
    } 
} 

ありがとうございます。


私の実際のプログラムは

package com.sms.data; 

import com.sms.util.*; 

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

public class Subject extends Operation 
{ 
int subId, subMarks; 
String subName; 
ArrayList <Subject> list = new ArrayList <Subject>(); 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

DuplicateSubjectFoundException duplicate = new DuplicateSubjectFoundException(); 

NoSubjectFoundException noName = new NoSubjectFoundException(); 

InvalidDataException invalid = new InvalidDataException(); 

InvalidName inName = new InvalidName(); 

int select, exit = 0; 
public Matcher matcher; 
Subject sub; 


public Subject(){ 
} 

public Subject(int id, String name, int marks){ 
subId = id; 
subName = name; 
subMarks = marks; 
} 

public void display(){ 
System.out.println("SubjectId" + "\t" + "Name" + "\t" + "Marks"); 
System.out.println(subId + "\t" + subName + "\t" + subMarks); 
} 

public void show(){ 
System.out.println("1.Insert" + "\n" + "2.Search" + "\n" + "3.Update" + "\n" + "4.Delete" + "\n" + "5.Back"); 
try{ 
select = Integer.parseInt(br.readLine()); 
} 
catch(Exception e){ 
System.out.println(e); 
} 
} 


public void displayList(ArrayList <Subject> store) 
{ 
int id = 0, subMarks = 0; 
String name = " "; 
while(exit != 3) 
{ 
try 
{ 
this.show(); 
switch(select) 
{ 
case 1: 
     try{ 
      System.out.println("Enter Subject ID: "); 
      subId = Integer.parseInt(br.readLine()); 
      for(int j=0; j < list.size();j++){ 
       System.out.println(list.get(j)); 
      } 

      System.out.print("Subject Marks: "); 
      String marks = br.readLine(); 
      if(marks.equals(" ")){ 
       throw invalid; 
      } 
      else{ 
       subMarks = Integer.parseInt(marks); 
       for(int j=0; j < list.size();j++){ 
        System.out.println(list.get(j)); 
       } 
       if(subMarks > 100) 
        throw invalid; 
      } 

      System.out.println("Enter subject Name: "); 
      subName = br.readLine(); 
      Matcher matcher = Pattern.compile("[^a-zA-Z0-9]").matcher(subName); 
      while(matcher.find()) 
      { 
       for(int j=0; j < list.size();j++){ 
        System.out.println(list.get(j)); 
       } 
       throw inName; 
      } 

     } 
     catch(NumberFormatException e){ 
      System.out.println("Invald ID."); 
      continue; 
     }   
     catch(InvalidDataException e){ 
      System.out.println(invalid.print()); 
      continue; 
     } 
     catch(Exception e){ 
      System.out.println(inName.print()); 
      continue; 
     } 
     add(subId, subName, subMarks, list); 
     break; 

case 2: //for search 

case 3: //for update 

case 4: //for delete 

case 5: 
     exit = 3; 
     break; 
default: 
      System.out.println("Enter your Choice."); 
      break; 
} 
} 
catch(Exception e){ 
System.out.println(e); 
} 
} 
} 

public void add(int subId, String subName, int subMarks, ArrayList<Subject> list){ 
    Subject sub = new Subject(); 
    int i =0; 
    while(i < list.size()){ 
     list.add(i, sub); 
    } 
} 


public void displayArrayList(ArrayList<Subject> list){  //for update 

    for(int i = 0;i < list.size(); i++){ 

     Subject sub = list.get(i); 
     sub.display(); 
    } 
} 
} 
+2

私はそこに 'List'も見ません。実際の詳細を提供するのに役立つかもしれません。 –

+1

ArrayListはどこですか? – Dan

+0

リストからユーザ定義のオブジェクトを正しく取得するには、ハッシュコードと等価メソッドをオーバーライドする必要があります。 – Phani

答えて

0

私はあなたのコード内の任意のArrayList()を見つけることができませんでした...ので、私はArrayListの上で件のデータを保存するために何をすべきかアドバイスしてあげてください....このようなものですただし、ArrayList()からデータを抽出する場合は、次のようにすることができます。

ArrayList list=new ArrayList(); 
int[][] tmp; 
for(Object tab : list){ 
    tmp = (int[][]) tab; 
} 
+0

ArrayListに* nothing *があります。それは型を持っていません!どのようなタイプであるかわからないときに、何かに関する特定の情報を取得する方法はありますか? – Makoto

+0

@Makoto:ArrayListから抽出する方法についての参考文献を提供しています。 – Parth

関連する問題