Телефонный справочник, Добавить и Удалить данные в массив Java
Я новичек, Задача такая написать телефонный справочник, в котором есть три функции найти, добавить, удалить. Мне нужно создать массив в котором будут данные справочника, и работать с ним. Я не могу понять как мне добавить данные человека из " saveContact" в массив? И удалить из массива ? Застрял на этом.
import java.util.List;
import java.util.Scanner;
public class CompInfoHighway extends Main{
public CompInfoHighway(String kategory, String surname, String name1, String patronymic, String location, String email, String number) {
super(kategory, surname, name1, patronymic, location, email, number);
}
public static void fail(){
CompInfoHighway[] list = new CompInfoHighway[25];
list[0] = new CompInfoHighway("Универ", "Иван","Иванов","Иванович","Сатпаева 22 А","[email protected]", "87751111111");
list[1] = new CompInfoHighway("Работа", "Сергеев","Сергей","Аскарович","Назарбаева 115","[email protected]","87059963255");
list[2] = new CompInfoHighway("Танцы","Димов","Дима","Димович","Казыбек би 22/1","[email protected]","87756591232");
list[3] = new CompInfoHighway("Медицина","Евгеньев", "Евгений,"Евгенивич","Муратбаева 114/120","[email protected]","87778578367");
list[4] = new CompInfoHighway("Медицина","Владимиров","Владимир","Владимерович","Темирязева 56","[email protected]","87776549874");
list[5] = new CompInfoHighway("Танцы","Петров","Петр","Петрович","Абая 110","[email protected]","87054896523");
}
public static void main(String[] args) { displayMenu();}
public static void saveContact(String kategory, String surname, String name, String patronymic, String location, String email, String number){
System.out.println("Контакт сохранен:"+ kategory+" "+surname+" "+name+" "+patronymic+" "+location+" "+email+" "+number);
}
public static void findNumber(String Name){
System.out.println("");
}
public static void displayMenu(){
Scanner in = new Scanner(System.in);
System.out.println("Что вы хотите сделать?");
System.out.println("1. Сохранить контакт");
System.out.println("2. Найти контакт");
System.out.println("3. Удалить контакт");
int choice = in.nextInt(); //выберете что хотите сделать
in.nextLine();
switch(choice){
case 1:
System.out.println("Введите категорию человека которого хотите добавить:");
System.out.println("Пример: Семья,Универ,Работа,Медицина,Танцы. Можете добавить свою категорию");
String kategory = in.nextLine();
System.out.print("Введите фамилию человека которого хотите добавить:");
String surname = in.nextLine();
System.out.println("Введите имя человека которого хотите добавить:");
String name = in.nextLine();
System.out.println("Введите отчество человека которого хотите добавить:");
String patronymic = in.nextLine();
System.out.println("Введите адрес человека которого хотите добавить:");
String location = in.nextLine();
System.out.println("Введите почту человека которого хотите добавить:");
String email = in.nextLine();
System.out.println("Введите номер человека которого хотите добавить:");
String number = in.nextLine();
saveContact(kategory, surname, name, patronymic, location, email, number);
break;
case 2:
System.out.println("Как зовут человека, номер которого вы хотите найти?");
name = in.nextLine();
System.out.println();
break;
case 3:
System.out.println("Как зовут человека которого вы хотите удалить?");
default:
break;
}
}
}
public class Main {
private String kategory;
private String surname;
private String name1;
private String patronymic;
private String location;
private String email;
private String number;
public Main(String kategory, String surname, String name1, String patronymic,
String location, String email, String number) {
this.kategory = kategory;
this.surname = surname;
this.name1 = name1;
this.patronymic = patronymic;
this.location = location;
this.email = email;
this.number = number;
}
public String getKategory(){return kategory;}
public void setKategory(String kategory){this.kategory = kategory;}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getName() {
return name1;
}
public void setName(String name) {
this.name1 = name;
}
public String getPatronymic() {
return patronymic;
}
public void setPatronymic(String patronymic) {
this.patronymic = patronymic;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getNumber() {
return number;
}
public void setNumber(String number) { this.number = number;
}
// чтобы информация отображалась в PhoneNumber
public void showFullName() {
System.out.println(surname + " " + name1 + " " + patronymic);
}
}
Ответы (2 шт):
метод вызывается у экземпляра класса в виде object.saveContact()
учитывая что мы в данный момент находимся внутри метода класса,
т.е. только что сделали вызов object.displayMenu() для ссылки на object. внутри метода класса используется this.
this.saveContact( ... )
В комментариях в написал что добавил. Всё же лучше использовать динамические массивы, к примеру ArrayList. Почитай про массивы и область видимости, удачи.
import java.util.Scanner;
public class CompInfoHighway extends Main {
public CompInfoHighway(String kategory, String surname, String name1, String patronymic, String location, String email, String number) {
super(kategory, surname, name1, patronymic, location, email, number);
}
static CompInfoHighway[] list = new CompInfoHighway[25]; //выносим массив за границы метода fail, чтобы увеличить его область видимости, чтобы он был доступен в методе saveContact
static int idContact = 6; //индекс следующего элемента массива, он равен 6 так как добавлено в fail медоте 6 элементов с (0 по 5)
public static void fail() {
//убрали отсюда массив list
list[0] = new CompInfoHighway("Универ", "Иван", "Иванов", "Иванович", "Сатпаева 22 А", "[email protected]", "87751111111");
list[1] = new CompInfoHighway("Работа", "Сергеев", "Сергей", "Аскарович", "Назарбаева 115", "[email protected]", "87059963255");
list[2] = new CompInfoHighway("Танцы", "Димов", "Дима", "Димович", "Казыбек би 22/1", "[email protected]", "87756591232");
list[3] = new CompInfoHighway("Медицина", "Евгеньев", "Евгений", "Евгенивич", "Муратбаева 114/120", "[email protected]", "87778578367");
list[4] = new CompInfoHighway("Медицина", "Владимиров", "Владимир", "Владимерович", "Темирязева 56", "[email protected]", "87776549874");
list[5] = new CompInfoHighway("Танцы", "Петров", "Петр", "Петрович", "Абая 110", "[email protected]", "87054896523");
}
public static void main(String[] args) {
displayMenu();
}
public static void saveContact(String kategory, String surname, String name, String patronymic, String location, String email, String number) {
System.out.println("Контакт сохранен:" + kategory + " " + surname + " " + name + " " + patronymic + " " + location + " " + email + " " + number);
//добавляем ССЫЛКУ на объект в массив
list[idContact] = new CompInfoHighway(kategory, surname, name, patronymic, location, email, number);
idContact++;
}
public static void findNumber(String Name) {
System.out.println("");
}
public static void displayMenu() {
fail(); //вызвываем метод fail чтобы заполнить list
Scanner in = new Scanner(System.in);
System.out.println("Что вы хотите сделать?");
System.out.println("1. Сохранить контакт");
System.out.println("2. Найти контакт");
System.out.println("3. Удалить контакт");
int choice = in.nextInt(); //выберете что хотите сделать
in.nextLine();
switch (choice) {
case 1:
System.out.println("Введите категорию человека которого хотите добавить:");
System.out.println("Пример: Семья,Универ,Работа,Медицина,Танцы. Можете добавить свою категорию");
String kategory = in.nextLine();
System.out.print("Введите фамилию человека которого хотите добавить:");
String surname = in.nextLine();
System.out.println("Введите имя человека которого хотите добавить:");
String name = in.nextLine();
System.out.println("Введите отчество человека которого хотите добавить:");
String patronymic = in.nextLine();
System.out.println("Введите адрес человека которого хотите добавить:");
String location = in.nextLine();
System.out.println("Введите почту человека которого хотите добавить:");
String email = in.nextLine();
System.out.println("Введите номер человека которого хотите добавить:");
String number = in.nextLine();
saveContact(kategory, surname, name, patronymic, location, email, number);
break;
case 2:
System.out.println("Как зовут человека, номер которого вы хотите найти?");
name = in.nextLine();
System.out.println();
break;
case 3:
System.out.println("Как зовут человека которого вы хотите удалить?");
default:
break;
}
//вывод всех контактов
for (int i = 0; i < idContact; i++)
list[i].showFullName();
}
}