2014-04-01 2 views
0

arraylist에 포함 된 모든 레코드를 검색하려고합니다. BusinessContacts라는 다른 클래스의 수퍼 클래스 인 ContactList라는 클래스가 있습니다. 내 첫 번째 작업은 연락처의 이름과 성만 인쇄하는 것입니다. 두 번째 작업은 ID 번호와 관련된 연락처 세부 정보를 인쇄하는 것입니다. ContactList 클래스에는 모든 인스턴스 변수와 set/get 메서드 및 toString() 메서드가 있습니다. BusinessContact 클래스는 ContactList 클래스에 추가해야하는 인스턴스 변수가 두 개만 포함되어 있습니다. 이것이 어떻게 작동 될 수 있습니까? 코드는 다음과 같습니다 :사용자가 java의 arraylist에 입력 한 레코드를 모두 검색하는 방법

ContactList 클래스 :

package newcontactapp; 

public abstract class ContactList { 

    private int iD; 
    private String firstName; 
    private String lastName; 
    private String adDress; 
    private String phoneNumber; 
    private String emailAddress; 

    // six-argument constructor 
    public ContactList(int id, String first, String last, String address, String phone, String email) { 
     iD = id; 
     firstName = first; 
     lastName = last; 
     adDress = address; 
     phoneNumber = phone; 
     emailAddress = email; 
    } 

    public ContactList(){ 

    } 

    public void displayMessage() 
    { 
     System.out.println("Welcome to the Contact Application!"); 
     System.out.println(); 
    } 

    public void displayMessageType(String type) 
    { 
     System.out.println("This is a " + type); 
     System.out.println(); 
    } 

    public int getiD() { 
     return iD; 
    } 

    public void setiD(int id) { 
     iD = id; 
    } 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String first) { 
     firstName = first; 
    } 

    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String last) { 
     lastName = last; 
    } 

    public String getAdDress() { 
     return adDress; 
    } 

    public void setAdDress(String address) { 
     adDress = address; 
    } 

    public String getPhoneNumber() { 
     return phoneNumber; 
    } 

    public void setPhoneNumber(String phone) { 
     phoneNumber = phone; 
    } 

    public String getEmailAddress() { 
     return emailAddress; 
    } 

    public void setEmailAddress(String email) { 
     emailAddress = email; 
    } 


    public String toString(){ 


     return getiD() + " " + getFirstName() + "  " + getLastName() + "  " + getAdDress() + "  " + getPhoneNumber() + "  " + getEmailAddress() + "\n" ; 
    } 
} 

BusinessContacts 클래스 : 여기

package newcontactapp; 


public class BusinessContacts extends ContactList { 


    private String jobTitle; 
    private String orGanization; 

    // 
    public BusinessContacts(int id, String first, String last, String address, String phone, String email, String job, String organization){ 

     super(); 
     jobTitle = job; 
     orGanization = organization; 
    } 

    public BusinessContacts(){ 

    } 

    public String getJobTitle() { 
     return jobTitle; 
    } 

    public void setJobTitle(String job) { 
     jobTitle = job; 
    } 

    public String getOrGanization() { 
     return orGanization; 
    } 

    public void setOrGanization(String organization) { 
     orGanization = organization; 
    } 

    //@Override 
    public String toString(){ 

     return super.toString()+ " " + getJobTitle()+ " " + getOrGanization() + "\n"; 
    } 
} 

내 주요 방법 클래스입니다 :

package newcontactapp; 

import java.util.ArrayList; 

//import java.util.Iterator; 
import java.util.Scanner; 

public class NewContactAppTest { 

    //ArrayList<ContactList> fullList = new ArrayList<>(); 
    ArrayList<ContactList> bContacts = new ArrayList<>(); 
    ArrayList<ContactList> pContacts = new ArrayList<>(); 

    public static void main(String [] args) 
    { 

     ContactList myContactList = new ContactList() {}; 

     myContactList.displayMessage(); 

     new NewContactAppTest().go(); 
    } 

    public void go() 
    { 
     ContactList myContactList = new ContactList() {}; 

     System.out.println("Menu for inputting a Business Contact or Personal Contact"); 
     System.out.println(); 

     Scanner input = new Scanner(System.in); 

     System.out.println("Please enter a numeric choice below: "); 
     System.out.println(); 
     System.out.println("1. Add a Business Contact"); 
     System.out.println("2. Add a Personal Contact"); 
     System.out.println("3. Display Contacts"); 
     System.out.println("4. Quit"); 
     System.out.println(); 

     String choice = input.nextLine(); 

     if(choice.contains("1")){ 
      String type1 = "Business Contact"; 
      myContactList.displayMessageType(type1); 
      businessInputs(); 
     } 
     else if(choice.contains("2")){ 
      String type2 = "Personal Contact"; 
      myContactList.displayMessageType(type2); 
      personalInputs(); 
     } 
     else if(choice.contains("3")) { 
      displayContacts(); 
      displayRecord(); 
     } 
     else if(choice.contains("4")){ 
      endOfProgram(); 
     } 
    } 

    public void businessInputs() 
    { 
     BusinessContacts myBcontacts = new BusinessContacts(); 
     //ContactList myContactList = new ContactList() {}; 
     //ContactList nameContacts = new ContactList() {}; 

     bContacts.clear(); 
     int id = 0; 
     myBcontacts.setiD(id); 

     Scanner in = new Scanner(System.in); 

      while(true){ 
       id = id + 1; 
       myBcontacts.setiD(id); 
       //myContactList.setiD(id); 


       System.out.println("Enter first name "); 
       String firstName = in.nextLine(); 
       //nameContacts.setFirstName(firstName); 
       //myContactList.setFirstName(firstName); 
       myBcontacts.setFirstName(firstName); 


       System.out.println("Enter last name: "); 
       String lastName = in.nextLine(); 
       //nameContacts.setLastName(lastName); 
       //myContactList.setLastName(lastName); 
       myBcontacts.setLastName(lastName); 

       System.out.println("Enter address: "); 
       String address = in.nextLine(); 
       //myContactList.setAdDress(address); 
       myBcontacts.setAdDress(address); 


       System.out.println("Enter phone number: "); 
       String phoneNumber = in.nextLine(); 
       //myContactList.setPhoneNumber(phoneNumber); 
       myBcontacts.setPhoneNumber(phoneNumber); 


       System.out.println("Enter email address: "); 
       String emailAddress = in.nextLine(); 
       //myContactList.setEmailAddress(emailAddress); 
       myBcontacts.setEmailAddress(emailAddress); 


       System.out.println("Enter job title: "); 
       String jobTitle = in.nextLine(); 
       myBcontacts.setJobTitle(jobTitle); 



       System.out.println("Enter organization: "); 
       String organization = in.nextLine(); 
       myBcontacts.setOrGanization(organization); 


       //bContacts.add(myContactList); 
       bContacts.add(myBcontacts); 

       //names.add(nameContacts); 

       //System.out.println("as entered:\n" + bContacts); 

       System.out.println(); 
       System.out.println("Enter another contact?"); 

       Scanner input = new Scanner(System.in); 
       String choice = input.nextLine(); 

       if(choice.equalsIgnoreCase("Y")) { 
        continue; 
       } 

       else{ 
       break; 
       } 
      } 
      //bContacts.add(myBcontacts); 
go(); 
} 

    public void personalInputs(){ 

     ContactList myContactList = new ContactList() {}; 
     PersonalContacts myPcontacts = new PersonalContacts(); 

     Scanner in = new Scanner(System.in); 

     int id; 
     id = 1; 
     while(true){ 

      System.out.println("Enter first name; "); 
       String firstName = in.nextLine(); 
       myContactList.setFirstName(firstName); 
       myPcontacts.setFirstName(firstName); 

       System.out.println("Enter last name: "); 
       String lastName = in.nextLine(); 
       myContactList.setLastName(lastName); 
       myPcontacts.setLastName(lastName); 

       System.out.println("Enter address: "); 
       String address = in.nextLine(); 
       myContactList.setAdDress(address); 
       myPcontacts.setAdDress(address); 

       System.out.println("Enter phone number: "); 
       String phoneNumber = in.nextLine(); 
       myContactList.setPhoneNumber(phoneNumber); 
       myPcontacts.setPhoneNumber(phoneNumber); 

       System.out.println("Enter email address: "); 
       String emailAddress = in.nextLine(); 
       myContactList.setEmailAddress(emailAddress); 
       myPcontacts.setEmailAddress(emailAddress); 

       System.out.println("Enter birth date"); 
       String dateOfBirth = in.nextLine(); 
       myPcontacts.setDateOfBirth(dateOfBirth); 

       //pContacts.add(myContactList); 
       pContacts.add(myPcontacts); 

       id = id + 1; 
       myContactList.setiD(id); 

       System.out.println(); 
       System.out.println("Enter another contact?"); 

       Scanner input = new Scanner(System.in); 
       String choice = input.nextLine(); 

       if (choice.equalsIgnoreCase("y")) { 
        continue; 
       } 
       else{ 
       break; 
      } 
     } 
     go(); 
    } 

    public void displayContacts(){ 


     System.out.println(); 
      for(ContactList name : bContacts){ 
      System.out.println(name.getiD() + " " + name.getFirstName()+ "   " + name.getLastName()); 

     } 
    } 

    public void displayRecord(){ 

     System.out.println(); 
     System.out.println("Do you wish to see details of contact?"); 

     Scanner input = new Scanner(System.in); 
     String choice = input.nextLine(); 

     if(choice.equalsIgnoreCase("Y")) { 

     System.out.println(); 
     System.out.println("Enter the numeric key from the list to see more specific details of that record"); 
     System.out.println(); 
     Scanner key = new Scanner(System.in); 


     System.out.println(); 
     ContactList record = new ContactList() {};  
     for(int i = 0; i < bContacts.size(); i++){ 
      record = bContacts.get(i); 

       System.out.println(record.toString()); 
     } 

     } 
     else{ 
      go(); 
     } 


     /* else{ 
      System.out.println(); 
      System.out.println("This is a Personal Contact"); 
      System.out.println(); 
       for(int j = 0; j < pContacts.size(); j++){ 
       ContactList pList = pContacts.get(j);   
       pList = pContacts.get(j); 
       System.out.println(pList.toString()); 
        } 
       }*/ 

    } 

    public void endOfProgram(){ 

     System.out.println("Thank you! Have a great day!"); 
      Runtime.getRuntime().exit(0); 
    } 
} 
+5

문제가되는 영역까지 코드를 좁 힙니다. – ChiefTwoPencils

+0

죄송합니다. 다음에 더 잘 할거야. – user3473693

+0

@ user3473693 이번에 할 수 있습니다. 질문의 왼쪽 하단에있는 회색 "편집"링크를 찾으십시오. 귀하의 질문은 혼란 스럽습니다. –

답변

0

것은 당신이 찾고 있다면 ID를 기반으로 한 값을 얻으려면 ArrayList의 내용을 반복하는 메소드를 만들어보십시오. 일치하는 항목을 찾으십시오.

public ContactList getContactList(int id) { 
    for (ContactList list : /*your ContactList List object*/) { 
     if (list.getiD() == id) { 
      return list; 
     } 
    } 
    return null; 
} 

결과가 없거나 목록의 첫 번째 결과가 표시되면 null을 반환합니다.

+0

이 메서드는 어떻게 호출하며 어디에서 실행해야합니까? – user3473693

+0

반복하는 데 필요한 arraylist가있는 클래스에 넣으십시오. 다른 방법으로 그것을 유틸리티 클래스로 사용하고 반복 할 arraylist를 전달할 수 있습니다. – Rogue

관련 문제