[英]Arrays? or not?
我不是Java方面的专家,但是我需要为我的课程主题解决此问题/活动,所以我才真正需要您的帮助。 我有编程问题。 问题是我不知道应该使用什么方法或Java代码来解决此问题:
创建一个班级通讯录,其中可以包含100个姓名,地址,联系电话和电子邮件地址条目。 您应该为通讯簿提供以下方法:
添加条目,删除条目,查看所有条目和更新条目
更新:这是我到目前为止得到的代码
我想我可以为此使用2d数组 ,但是,一旦我开始编码, 我就无法真正继续下去 ,我不知道是否可以在这种活动中使用数组。 我尝试搜索其他Java代码,但是我越了解可能的新技术或代码,就越会混淆我必须使用的代码!
如果有人可以帮助我为该活动构建代码,我将非常感谢并一定会研究地狱将如何/您能做到这一点! 因为我对学习Java真的很感兴趣,所以我只需要一些帮助就可以实现该目的。 提前致谢!
这就是我想知道的代码:这些程序的功能仅是用于添加编辑视图和删除名称,iam仍在弄清楚如何在数组中添加维,还是应该添加? 还是如果不是数组? 怎么样? 在该活动达到要求之前,我该如何回答:(
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);
}
}
由于您有几个条目要存储,因此我的建议是一个链表。 链表是一种数据结构,您可以在其中存储多个条目。Java提供了一个
http://www.mycstutorials.com/articles/data_structures/linkedlists此链接将帮助您获取链接列表。
首先,实现所有必需的类,在您的情况下,两个:
骨架可能是这样的
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());
...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.