阵列?或不?

Arrays? or not?

我不是 java 方面的专家,但我需要为我的课程主题解决这个 problem/activity,这就是为什么我真的需要你们的帮助。我有一个编程问题。问题是我不知道我应该使用什么方法或 java 代码来解决这个问题:

创建一个 class 地址簿,可以包含 100 个条目的姓名、地址、联系电话和电子邮件地址。 您应该为地址簿提供以下方法:

添加条目、删除条目、查看所有条目和更新条目

更新:这是我目前得到的代码

我想我可以为此使用 2d 数组,但是,一旦我开始编码 我就不能再继续了 ,我不知道在这种activity中是否可以使用数组。 我尝试搜索其他 java 代码,但我学习的新技术或可能的代码越多,我就越感到困惑我必须使用什么代码!

如果有人能帮助我为此编写代码activity我真的很感激并且一定会研究到底是怎么回事will/can 你来做!因为我真的对学习 Java 很感兴趣,所以我只需要一些帮助来了解我应该怎么做。提前致谢!

这是我目前得到的代码: 这些程序的功能仅用于添加编辑查看和删除名称,我仍在弄清楚如何向我的数组添加维度或者我应该添加吗?或者如果不是数组?如何?在满足其要求之前,我应该如何回答这个 activity :(

package javaactivities;
import java.util.*;
import java.util.Scanner;

public class AddressBook {
        static  List<String> l=new ArrayList<String>();

    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        boolean y=true;  
 do{   
     System.out.println("Enter \n1 to add an entry\n2 to edit entry");
     System.out.println("3 to delete an entry\n4 to view entries\n5 to exit");
     System.out.print("enter your choice: ");
     int choice=in.nextInt();
     switch(choice)
     {
        case 1:
            insert();
            break;
        case 2:
            edit();
            break;
        case 3:
            delete();
            break;
        case 4:
            print();
            break;
        case 5:
            toexit();
            break;
        default:
            System.out.println("bad input");
            break;
    }
    System.out.println("want to process more? y/n");
    String x=in.next();
    char ch=x.charAt(0); 
    if( ch=='n')
        y=false;
}
while(y!=false);

}

static public void insert(){


   Scanner in=new Scanner(System.in);

    boolean y=true;
   do{
        System.out.println("enter name to add in list");
        String entry=in.next();
            l.add(entry);
        System.out.println("want to insert more?y/n");
        String x=in.next();
        char ch=x.charAt(0);
        if( ch=='n')
            y=false;
     }
   while(y!=false); 

}

static public void print(){


   if(l.isEmpty())
       System.out.println("list is empty ");
   else
        System.out.println("members of lists are:");
        for(int i=0 ; i<l.size();i++)
            System.out.println("Entry "+i+" : "+ l.get(i)+" ");

}

static public void edit(){


   Scanner in=new Scanner(System.in);

   String num2;
   System.out.println("enter name you want to add");
   num2=in.next();
         try{
            System.out.println("enter entry # of the name you want to edit");
            int num1=in.nextInt();
            l.set(num1, num2);
         }catch(IndexOutOfBoundsException e){
                System.err.println("caught IndexOutOfBoundsException: specified position is empty "+e.getMessage());
           }

      }



static public void delete(){


    Scanner in=new Scanner(System.in);
    System.out.println("enter entry # you want to delete");
    int num=in.nextInt();
    l.remove(num);

}

static public void toexit(){

    System.exit(0);
}

}

由于您要存储多个条目,我的建议是 linked 列表。链表是一种数据结构,您可以在其中存储多个 entries.Java 提供一个

http://www.mycstutorials.com/articles/data_structures/linkedlists 此 link 将帮助您处理 linked 列表。

首先,实施所有必需的 类,两个在您的情况下:

  • 地址簿
  • 条目

骨架可能是这样的

public final class AddressBook {
  public static final class Entry {
    private String name; 
    private String address; 
    private String contactNumber;      
    private String email;  

    private Entry(String name, String address, String contactNumber, String email) {
      this.name = name;
      this.address = address;
      this.contactNumber = contactNumber;
      this.email = email;
    }

    public String getName() {return name;}
    public String getAddress() {return address;}
    public String getContactNumer() {return contactNumber;}
    public String getEmail() {return email;}
  }

  private ArrayList<Entry> entries = new ArrayList<Entry>();

  public AddressBook() {;}

  public int size() {return entries.size();}
  public int get(int index) {return entries.get(index);}
  ...
  public Entry add(String name, String address, String contactNumber, String email) {
    Entry entry = new Entry(name, address, contactNumber, email);

    entries.add(entry);

    return entry;
  }
  ...
}

为了实现 viewAll(),您可以选择覆盖 类 中的 toString() 方法,至 delete() 似乎您必须实现 find() 等等。然后只需使用这些 类

  public final class Main {
    private static AddressBook book = new AddressBook();

    public static void main(String[] args) {
      ...
      switch(choice) {
        case 1: 
          book.add(...);
          break;
        case 2:
          book.delete(...);
          break;
        ...
      }

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