과제가 만료되어 계속 진행하는 방법을 알지 못합니다.사용자가 Java의 ArrayList에서 객체를 검색 및 삭제할 수 있도록 허용
필자는 몇 가지 문제가 있지만, 지금 내가 집중하고있는 문제는 사용자가 내 ArrayList 내에서 개체를 삭제할 수있게하는 것입니다.
내 코드는 다음과 같습니다. 이 내 주입니다 :
import java.util.Scanner;
import java.util.ArrayList;
public class Kennel {
Scanner scan = new Scanner(System.in);
ArrayList<Dog> dogList = new ArrayList<Dog>();
public static void main(String[] args) {
Kennel kenneln = new Kennel();
kenneln.whenStart();
}
public void mainMenu() {
System.out.println("Välj åtgärd: \n" + "[1] Registrera hund \n" + "[2]
Öka
ålder \n" + "[3] Lista svanslängd \n" + "[4] Ta bort hund \n" + "[5]
Avsluta \n" + "Gör ett val: ");
}
public void menuAlt() {
System.out.println();
int menuAlt = scan.nextInt();
switch (menuAlt) {
case 1:
registerDog();
break;
case 2:
increaseAge();
break;
case 3:
listTailLenght();
break;
case 4:
deleteDog();
break;
case 5:
programExit();
break;
default:
System.out.println("Välj en siffra mellan 1 - 5");
whenStart();
}
}
public void registerDog() {
System.out.println("Namn: ");
scan.nextLine();
String name = scan.nextLine();
System.out.print("Ras: ");
String race = scan.nextLine();
System.out.print("Ålder: ");
int age = scan.nextInt();
System.out.print("Vikt: ");
int weight = scan.nextInt();
Dog doggy = new Dog(name, race, age, weight);
dogList.add(doggy);
System.out.println(name + " är nu registrerad!");
}
public void increaseAge() {
System.out.println("Vilken hund har fyllt år? \n" + "Ange namn: ");
int age = scan.nextInt();
}
public void listTailLenght() {
System.out.print("Ange minsta svanslängd: ");
double tailLenght = scan.nextDouble();
System.out.println("Hundar med svanslängd längre än " + tailLenght + ":
");
for (int i = 0; i < dogList.size(); i++) {
if (dogList.get(i).getTailLenght() >= tailLenght) {
System.out.println(dogList.get(i).toString());
}
}
}
public void deleteDog() {
boolean search=true;
while(search) {
System.out.print("Mata in namn på hund som ska tas bort: ");
String searchFor = scan.nextLine();
int ind = dogList.indexOf(searchFor);
if (ind == -1) {
System.out.println("Hund med det namnet fanns ej i registret");
} else {
dogList.remove(ind);
System.out.print("Hunden med det angivna namnet är borttagen ");
}
System.out.print("Fortsätt radera? J/N ?");
String ans = scan.nextLine();
if (!ans.equalsIgnoreCase("J"))
search = false;
}
/*
System.out.println("Mata in namn på hund som ska tas bort: ");
String delete = scan.nextLine();
System.out.println("Hunden med det angivna namnet är borttagen"); }
else
System.out.println("Hund med det namnet fanns ej i registret");
}
*/
}
public void programExit() {
System.out.println("Välkommen åter!");
System.exit(0);
}
public void whenStart() {
while (true) {
mainMenu();
menuAlt();
}
}
}
그리고 이것은 내 개 클래스 :
public class Dog {
private String name;
private String race;
private int age;
private double weight;
private double tailLenght;
public Dog(String name, String race, int age, double weight) {
this.name = name;
this.race = race;
this.age = age;
this.weight = weight;
if (race.equalsIgnoreCase("Tax")) if ´
(race.equalsIgnoreCase("Dachshund")) {
this.tailLenght = 3.7;
} else {
this.tailLenght = (age * weight)/10;
}
}
public String toString() {
return name + " " + race + " " + age + "år " + weight + " kg " + " svans=" + tailLenght;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRace() {
return race;
}
public void setRace(String race) {
this.race = race;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public double getTailLenght() {
return tailLenght;
}
public void setTailLenght(double tailLenght) {
this.tailLenght = tailLenght;
}
}
이 프로그램은 5 가지 옵션이 있습니다 또는 꼬리에 의해 1. 등록 개 2. 증가 나이 3. 정렬 명령 아이폰에 4. 삭제 개 5 번 출구
This is what happens when I try to delete a dog from the ArrayList
왜 프로그램에서 사용자가 개를 검색하게하지 않고 대신 다른 개를 삭제할 것인지 묻는 메시지로 바로 이동합니까?
코드를 올바르게 들여 쓰고 들여 쓰기하는 데 10 초를 소비하십시오. – OptimusCrime
죄송합니다. 나는이 시간을 올바르게 할 수 있도록 최선을 다했다. 나는 거짓말을하지 않을 것이고, 나는이 모든 것에 아주 새로운 것입니다! –