Добавление элемента в конец списка в java

#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:

  1. у вас есть массив String и преобразуйте его в List из String , поэтому вы не можете добавить char в него a.
  2. Когда вы это сделаете Arrays.asList , вы получите java.util.Arrays.ArrayList (что не является java.util.ArrayList а ). Первая add функция не реализована, поэтому вы ничего не можете туда добавить.
  3. Вы можете создать «обычный» список ( java.util.ArrayList ), используя то, что у вас есть в настоящее время в качестве параметра конструктора.

N. B. вы не сможете добавить a char , но вы можете добавить a String

Так что окончательное решение было бы:

 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. Отредактируйте, чтобы показать оба класса