Как добавить строку по определенному индексу в массив строк - PullRequest
4 голосов
/ 15 декабря 2011

У меня есть массив String, как показано ниже:

String[] titles = new String[] { "Booking", "Entry", "Type",
                    "Duration", "Status", "Contract ID",
                    "Capacity", "Start Day", "End Day", "Source Ref" };

Мне нужно добавить еще несколько значений в этот массив в более позднем состоянии, как показано ниже:

titles = new String[] { "Booking", "Shipper", "Booking Quantity", "Entry", 
                        "Type", "Duration", "Status", 
                        "Contract ID", "Capacity", "Start Day", 
                        "End Day", "Source Ref" };

здесьЯ добавил "Shipper", "Booking Quantity" в первый массив.

Есть ли способ добавить эти значения на основе индекса или каким-либо другим способом, не создавая, как в примере выше?(Возможно ли это?)

Ответы [ 7 ]

5 голосов
/ 15 декабря 2011

при инициализации массива, подобного этому

String[] titles = new String[] { "Booking", "Entry", "Type",
                "Duration", "Status", "Contract ID",
                "Capacity", "Start Day", "End Day", "Source Ref" };

Свойство массива "после инициализации массива после этого вы не можете изменить размер массива" *
так что в вашем случае вы должны инициализировать новый массив ....
Или вы можете использовать ArrayList и с помощью метода add(index, value) вы можете добавить свое значение по вашему желанию положение ..
Но неявно это также использовать Concept of Dynamic Array..

5 голосов
/ 15 декабря 2011

Возможно, я не правильно понял ваш вопрос, но вы можете использовать ArrayList<String> вместо простых массивов.Вы можете сделать что-то вроде этого:

titles.add(1, "Shipper");
titles.add(2, "Book Quantity");

Таким образом, вы в основном добавляете к ArrayList<String> заголовков два новых элемента в позиции 1 и 2.

И нет, вы не можетесделать это с обычными массивами.

3 голосов
/ 15 декабря 2011

Чтобы добавить их на основе индекса, вам фактически потребуется создать новый массив, отобразить все значения из старого массива и добавить новые значения по мере их поступления.

Было бы намного проще, если бы вы использовали ArrayList , который имеет метод insert, который может вставлять новые значения по любому индексу в списке

ex:

ArrayList<String> myList = new ArrayList<>();
myList.add("Booking");
myList.add("Entry");
myList.add("Type");
myList.add("Duration");
myList.add("Status");
myList.add("Contract ID"); 
myList.add("Capacity");
myList.add("Start Day");
myList.add("End Day");
myList.add("Source Ref");

//insertion 
myList.add(1, "Shipper");
mylist.add(2, "Booking Quantity");
3 голосов
/ 15 декабря 2011

Нет, ты не можешь.Массивы не являются динамическими.Вам нужно создать новый массив.Размер должен быть известен до создания массива.

String[] strings = new String[titles.length + 2];
strings[0] = "Booking";
strings[1] = "Shipper";
//...
2 голосов
/ 15 декабря 2011

Вы можете использовать ArrayList следующим образом:

ArrayList titleList = new ArrayList<String>();
titleList.add("Shipper");
titleList.add("Booking");
titleList.add("Entry");
titleList.add("Type");
titleList.add("Duration");
titleList.add("Status");
titleList.add("Contract");
titleList.add("ID");
//....
titleList.add(1,"Shipper")
titleList.add(2,"Booking quality");

Преимущество использования ArrayList состоит в том, что вы можете использовать Iterator и выполнять различные операции, такие как поиск определенной записи.

2 голосов
/ 15 декабря 2011

Лучше использовать List<String> и просто использовать add() метод.

2 голосов
/ 15 декабря 2011

Вы можете сохранить свои строки в ArrayList<String>, а затем использовать .add(index, text) метод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...