#java #object #arraylist #methods
#java #объект #список массивов #методы
Вопрос:
Я создаю программу, которая позволяет пользователю добавлять проблемы и удалять их (на основе меню).
Мой первый вопрос: Как я могу отобразить мой список массивов «проблема» другим методом? (В данном случае «ваши проблемы: массив проблем»)
Мой второй вопрос: как я могу удалить проблему из списка массивов проблем С помощью пользовательского ввода и сохранить ее в списке массивов «решаемая» в моем втором методе?
Фрагмент кода:
public class IssueTrackingObject {
int length;
int solved;
Scanner input = new Scanner(System.in);
public void createIssue() {
System.out.println("Enter the number of issues you will enter: ");
length = input.nextInt();
String[] issues = new String[length]; //issues stored in this array
for(int counter = 0; counter < length; counter ){
System.out.println(counter 1 (") Enter the first issue: "));
issues[counter] = input.next();
}
System.out.println("Your issues are: ");
for(int counter = 0; counter < length; counter ){
System.out.println(issues[counter]);
}
}
void solvedIssue() {
System.out.println("To MARK an issue as solved, please enter the number of the issue: ");
solved = input.nextInt();
String [] issues = new String [solved];
for(int s = 0; s < length; s ){
System.out.println(issues[s]);
}
}
void printSolvedIssue() {
System.out.println("You have SOLVED the following issues: ");
}
void printUnsolvedIssue() {
System.out.println("Your unsolved Issues are: ");
}
}
Я прочитал все, что смог найти в Интернете и в своей книге, но я не могу найти решение, которое соответствует тому, что я хочу, чтобы мой код выполнял.
Ответ №1:
Проблема # 1
Вы должны создать в своих выпусках списки членов класса, чтобы они могли быть доступны из любого метода внутри IssueTrackingObject
класса.
Проблема # 2
Вы можете добавить список решаемых проблем, чтобы сохранить те проблемы, которые удалены из общего списка проблем.
Вы можете попробовать реализовать свой IssueTrackingObject
класс следующим образом:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class IssueTrackingObject {
Scanner input = new Scanner(System.in);
// Make your issues lists members of the class so that they
// can be accessed from all the methods inside the class
private List<String> _allIssues = new ArrayList<String>();
// Added a Solved issues list to store the solved issues
private List<String> _solvedIssues = new ArrayList<String>();
public void createIssue() {
System.out.println("Enter the number of issues you will enter: ");
int length = input.nextInt();
for (int counter = 0; counter < length; counter ) {
System.out.printf("Enter issue number %dn", counter 1);
_allIssues.add(input.next());
}
System.out.println("Your issues are: ");
for (int counter = 0; counter < _allIssues.size(); counter ) {
System.out.printf("%d. %sn", counter 1, _allIssues.get(counter));
}
}
void solvedIssue() {
if(_allIssues.size() == 0) {
System.out.println("No issues entered yet. Please enter some issues");
return;
}
System.out.println("To MARK an issue as solved, please enter the number of the issue: ");
int index = input.nextInt();
--index; // List starts at zero
_solvedIssues.add(_allIssues.get(index));
_allIssues.remove(index);
}
void printSolvedIssue() {
System.out.println("You have SOLVED the following issues: ");
for(int i = 0; i < _solvedIssues.size(); i) {
System.out.printf("%d. %sn", i 1, _solvedIssues.get(i));
}
}
void printUnsolvedIssue() {
System.out.println("Your unsolved Issues are: ");
for(int i = 0; i < _allIssues.size(); i) {
System.out.printf("%d. %sn", i 1, _allIssues.get(i));
}
}
public static void main(String[] args) {
int exit = 1;
Scanner input = new Scanner(System.in);
IssueTrackingObject itracker = new IssueTrackingObject();
while(exit != -1) {
System.out.println("Select an Option or -1 to exitn1. Create Issuen2. Solve Issuen"
"3. View solved issuesn4. View unsolved issues");
exit = input.nextInt();
switch (exit) {
case(0) :
System.out.println("Number of issues has to be greater than zero");
break;
case(1) :
itracker.createIssue();
break;
case(2) :
itracker.solvedIssue();
break;
case(3) :
itracker.printSolvedIssue();
break;
case(4) :
itracker.printUnsolvedIssue();
break;
}
}
input.close();
System.out.println("Program finished");
}
}
Не стесняйтесь вносить изменения, если я не совсем понял, что вы пытались сделать.
Комментарии:
1. Я просто хотел бы поблагодарить вас за то, что нашли время помочь, я действительно ценю это! Сейчас я снова попытаюсь отредактировать свой код 🙂
2. Вау, огромное вам спасибо! Комментарии также были действительно полезны. Многие новички найдут это действительно полезным!
3. да, вы справились с этим! Я знал, что у меня должно быть два arraylists — я просто не был уверен, как заставить их связать, но теперь я вижу 🙂 и Get index — действительно простой способ сделать то, что я хотел. Я не могу отблагодарить вас достаточно!
4. @ItsAmiYouNeedAMedic рад, что смог помочь!
5. @ItsAmiYouNeedAMedic Я понял, что у меня ошибка в printUnsolvedIssue(). Я обновил свой ответ, пожалуйста, проверьте его.