2013-12-29 2 views
0

최근 주소록에 수정 나는 대부분의 작업이 설정 한 주소록에 근무했습니다 접촉을 삭제 및

  • 표시 연락처를 변경 연락처
    • 항목을
    • 모든 연락처 표시
    • 삭제 연락처.

    연락처 입력 및 모든 연락처 표시가 작동하지만 나머지를 만드는 방법을 알지 못합니다.

    내가 지금까지 한 일이다 메인 클래스 :

    import java.util.ArrayList; 
    import java.util.List; 
    import java.util.Scanner; 
    
    public class AddressBook { 
        private static List<Data> contact = new ArrayList<Data>(); 
    
        public static void main(String[] args) { 
    
         AddressBook addressBook = new AddressBook(); 
    
    
         Scanner sc = new Scanner(System.in); 
         int menu; 
         String choice; 
    
         System.out.println(" 0. Exit. "); 
         System.out.println(" 1. Add contact. "); 
         System.out.println(" 2. Edit contact. "); 
         System.out.println(" 3. Outprint contact. "); 
         System.out.println(" 4. Outprint all contacts. "); 
         System.out.println(" 5. Delete contact. "); 
         menu = sc.nextInt(); 
    
         while (menu != 0) { 
    
          switch (menu) { 
    
          case 1: 
           while (menu != 2) { 
            System.out.println("Enter First Name: "); 
            String firstName = sc.next(); 
            System.out.println("Enter Last Name: "); 
            String lastName = sc.next(); 
            System.out.println("Enter email: "); 
            String email = sc.next(); 
            contact.add(new Data(firstName, lastName, email));// Creating a new object and adding it to list 
            System.out.println("Would you like to add someone else? 1: Yes, 2: No"); 
            menu = sc.nextInt(); 
           } 
           break; 
    
          case 2: 
           System.out.println("Enter First Name of contact that you would like to edit: "); 
           int index = sc.nextInt(); 
    
           break; 
          case 3: 
           System.out.println("Enter First Name of contact that you would like to delete: "); 
           choice = sc.next(); 
           break; 
          case 4: 
           System.out.println(addressBook.contact); 
           break; 
          case 5: 
           System.out.println("Vpišite ime osebe, ki jo želite izbrisati: "); 
           choice = sc.next(); 
           contact.remove(choice); 
           break; 
          } 
    
          System.out.println(" 0. Exit. "); 
          System.out.println(" 1. Add contact. "); 
          System.out.println(" 2. Edit contact. "); 
          System.out.println(" 3. Outprint contact. "); 
          System.out.println(" 4. Outprint all contacts. "); 
          System.out.println(" 5. Delete contact. "); 
          menu = sc.nextInt(); 
         } 
         System.out.println("Goodbye!"); 
    
        } 
    
        private void addData(String firstName, String lastName, String email) { 
         Data person = new Data(firstName, lastName, email); 
         contact.add(person); 
        } 
    } 
    

    및 데이터 클래스 :

    public class Data { 
        private String firstName = null; 
        private String lastName = null; 
        private String email = null; 
    
        public Data(String firstName, String lastName, String email) { 
         this.firstName = firstName; 
         this.lastName = lastName; 
         this.email = email; 
        } 
    
        public String getFirstName() { 
         return firstName; 
        } 
    
        public void setFirstName(String firstName) { 
         this.firstName = firstName; 
        } 
    
        public String getLastName() { 
         return lastName; 
        } 
    
        public void setLastName(String lastName) { 
         this.lastName = lastName; 
        } 
    
        public String getEmail() { 
         return email; 
        } 
    
        public void setEmail(String email) { 
         this.email = email; 
        } 
    
    
        public String toString() { 
         return String.format(firstName+" "+lastName+" "+email); 
        } 
    } 
    
  • +1

    무엇이 질문입니까? –

    +0

    연락처를 하나만 변경하는 방법, 연락처를 하나만 표시하는 방법 및 연락처를 하나만 삭제하는 방법은 무엇입니까? – user3023250

    답변

    0

    삭제는 다음과 같이 작동합니다 :

    /** 
    * Will work long as there are no two contacts with same first name. In that case 
    * you'll need more data to find a unique contact. 
    */ 
    private void deleteByFirstName(String firstName) { 
        for (Iterator<Data> iterator = contact.iterator(); iterator.hasNext();) { 
        Data temp = iterator.next(); 
    
        // Add null checks for proper error handling. 
    
        if (temp.getFirstName().equalsIgnoreCase(firstName)) { 
         iterator.remove(); 
         return; 
        } 
        } 
    
        System.out.println("No contact with first name " + firstName + " was found."); 
    } 
    

    당신 단일 연락처를 표시하거나 편집하는 데 유사한 논리를 사용할 수 있습니다. 연락처를 반복하는 헬퍼 메소드를 작성해, 양쪽 모두에 사용할 수있는 일치하는 연락처를 돌려줍니다. 그런 다음 Data 개체를 인쇄하거나 편집하십시오.

    +0

    조언 해 주셔서 감사합니다. 이제 작동합니다. 가장 큰 문제는 단일 연락처를 삭제, 표시 또는 편집하는 방법을 알지 못했다는 것입니다. – user3023250

    +0

    연락처를 찾고 표시하는 방법을 찾았지만 연락 방법의 이름, 성 및 이메일을 설정할 수있는 방법을 쓰는 방법을 모르겠습니다. – user3023250

    +0

    글쎄, 연락처에서 연락처를 찾는 방법이 있다면 연락처 객체의 setter를 사용하여 주어진 정보로 해당 연락처의 필드를 편집하기 만하면됩니까? – t0mppa