#java #list #input #elements
#java #Список #ввод #элемент
Вопрос:
Я хочу создать список элементов, созданных с помощью пользовательского ввода. Могу ли я напрямую сохранить элемент в списке или мне нужно создать ссылку? Я нашел, как составить список готовых переменных, но я хочу создать переменные te с помощью пользовательского ввода.
Цель моего проекта — сохранить dataset и вызвать их позже. Сначала я понимаю концепцию списков. Поэтому я не думаю, что в данный момент полезно копировать мой код.
import java.util.*;
public class Database {
public Database () {
}
public static int numberOfSpawnpoints = 0;
static Scanner userInput = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Add a new spawnpoint.n");
System.out.println("State the name of this spawnpoint: ");
Spawnpoints Sp1 = new Spawnpoints(getSpawnName());
System.out.println("Name: " Sp1.getSpawnName());
System.out.println("Location: " Sp1.getLocation());
System.out.println("Pokemon: " Sp1.getPokemon());
System.out.println("Spawntime: " Sp1.getSpawntime());
System.out.println("The pokemon is currently spawned: " Sp1.isSpawned());
numberOfSpawnpoints ;
}
public static String spawnName;
public static String getSpawnName() {
spawnName = userInput.next();
return spawnName;
}
public void setSpawnName(String spawnName) {
Database.spawnName = spawnName;
}
}
Комментарии:
1. Вы знаете, как получить ввод от пользователя?
2. Да, я могу создать элемент и определить атрибуты с помощью пользовательского ввода. Теперь я хотел бы сохранить этот элемент в списке.
3. Что вы подразумеваете под созданием элемента? Это просто взять входные данные и сохранить их в Arraylist
4. В классе spawnpoints я написал код для получения пользовательского ввода. Это распечатывается в классе базы данных.
5. Итак, когда вы возвращаете точку возрождения, вы хотите сохранить ее в списке?
Ответ №1:
Надеюсь, это поможет
import java.util.*;
public class Database {
public Database () {
}
public static int numberOfSpawnpoints = 0;
static Scanner userInput = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Add a new spawnpoint.n");
System.out.println("State the name of this spawnpoint: ");
ArrayList<Spawnpoints> SPlist = new ArrayList<Spawnpoints>();
SPlist.add(new Spawnpoints(getSpawnName()));
// the above line will create an object of Spawnpoints and store it in list
System.out.println("Name: " SPlist.get[0].getSpawnName());
System.out.println("Location: " SPlist.get[0].getLocation());
System.out.println("Pokemon: " SPlist.get[0].getPokemon());
System.out.println("Spawntime: " SPlist.get[0].getSpawntime());
System.out.println("The pokemon is currently spawned: " SPlist.get[0].isSpawned());
numberOfSpawnpoints ;
}
public static String spawnName;
public static String getSpawnName() {
spawnName = userInput.next();
return spawnName;
}
public void setSpawnName(String spawnName) {
Database.spawnName = spawnName;
}
}
Комментарии:
1. Вот как вы можете использовать list . Добавьте в список столько элементов, сколько точек возрождения.
2. Я хочу поблагодарить вас за ваше терпение, Усама, это именно то, что я хотел изучить. Просто чтобы убедиться, означает ли < >, что он содержит элемент? Я не уверен, что представляет собой такой синтаксис.
3. Тип элементов, которые будут храниться в ArrayList.
4. ArrayList <Integer> будет хранить значения int и так далее.
5. Я хотел бы просмотреть эту строку SPList.get[0].isSpawned() . Во-первых, .get[0] вызывает атрибут элемента SPList. Во-вторых, .getSpawnName() вызывает функцию getSpawnName . Я получаю эту ошибку во всех строках System.out «get не может быть разрешен или не является полем»
Ответ №2:
Вы можете попробовать добавить этот код:
ArrayList<String> items = new ArrayList<String>();
while (!userInput.equals("exit")){
items.add(userInput.next());
}
Комментарии:
1. Я хочу проверить, понимаю ли я эту строку кода. Означает ли < >, что он использует строку в качестве аргументов. Поэтому, если точка возрождения не названа «exit», точка возрождения сохраняется в списке.