#java #list
Вопрос:
У меня есть этот массив, который я преобразовал в список:
String[] inputArr = {"id", " ", "id", "*", "id"}; Listlt;Stringgt; inputList = Arrays.asList(inputArr);
Как бы я мог добавить символ в конец списка, если для списков нет специальной функции добавления?
Редактировать: Как мои классы, так и код
import java.util.*; public class Main{ public static void main(String[] args) { String[] inputArr = {"id", " ", "id", "*", "id"}; //InQueue inQueue = new InQueue(inputArr); InQueue inQueue = new InQueue(); } } import java.util.*; public class InQueue { public static String[] inputArr = {"id", " ", "id", "*", "id"}; public static Listlt;Stringgt; inputList = Arrays.asList(inputArr); }
Комментарии:
1. С помощью
add
метода списка2. Конечно
inputList
, уadd
этого есть свой метод. Но, может быть, вы имеете в виду что-то другое, когда говорите о добавлении «персонажа» в списокString
s?3. Потому что вы получаете неизменное
List
?Listlt;Stringgt; inputList = new ArrayListlt;gt;(Arrays.asList(inputArr));
4. @floxbr Я хотел добавить «$» в конец списка, чтобы дать сигнал моему анализатору остановиться в конце, когда он увидит $
5. @Ellio Это не неизменяемый список. Это обычный ArrayList
Ответ №1:
- у вас есть массив
String
и преобразуйте его вList
изString
, поэтому вы не можете добавитьchar
в него a. - Когда вы это сделаете
Arrays.asList
, вы получитеjava.util.Arrays.ArrayList
(что не являетсяjava.util.ArrayList
а ). Перваяadd
функция не реализована, поэтому вы ничего не можете туда добавить. - Вы можете создать «обычный» список (
java.util.ArrayList
), используя то, что у вас есть в настоящее время в качестве параметра конструктора.
N. B. вы не сможете добавить a
char
, но вы можете добавить aString
Так что окончательное решение было бы:
String[] inputArr = {"id", " ", "id", "*", "id"}; Listlt;Stringgt; inputList = new ArrayListlt;gt;(Arrays.asList(inputArr)); inputList.add("$");
Вероятно, вы хотите достичь чего-то подобного:
import java.util.*; class Main{ public static void main(String[] args) { String[] inputArr = {"id", " ", "id", "*", "id"}; InQueue inQueue = new InQueue(inputArr); inQueue.printQueue(); } } class InQueue { Listlt;Stringgt; tokens; public InQueue(String[] input){ tokens = new ArrayListlt;gt;(Arrays.asList(input)); tokens.add("$"); } public void printQueue(){ System.out.println(tokens); } }
Комментарии:
1. Это было именно то, что я искал, но, похоже, это не работает на меня. Я получаю сообщение об ошибке «не удается разрешить символ «добавить»»
2. Что, если вы просто создадите отдельный основной метод и скопируете мой код? Это должно сработать. Вероятно, у вас есть какой-то непонятный импорт..
3. Я пытаюсь использовать это в другом классе, у которого нет основного метода. Я пытался создать метод add (), но, похоже, не могу заставить его работать
4. Можете ли вы показать свой код, включая имя класса и импорт? Вы можете оставить только тот метод, в который вы поместили свой код.
5. Отредактируйте, чтобы показать оба класса