阵列?或不?
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());
...
}
}
我不是 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());
...
}
}