Как добавить элементы массива строк в список массивов строк?
157382 просмотра
11 ответа
Я пытаюсь передать строковый массив в качестве аргумента конструктору класса Wetland; Я не понимаю, как добавить элементы массива строк в список массивов строк.
import java.util.ArrayList;
public class Wetland {
private String name;
private ArrayList<String> species;
public Wetland(String name, String[] speciesArr) {
this.name = name;
for (int i = 0; i < speciesArr.length; i++) {
species.add(speciesArr[i]);
}
}
}
Автор: robinhood91
Источник
Размещён: 12.11.2019 09:45
Ответы (11)
106 плюса
У вас уже есть встроенный метод для этого: -
List<String> species = Arrays.asList(speciesArr);
Примечание : - Вы должны использовать List<String> species
не ArrayList<String> species
.
Arrays.asList
возвращает другой ArrayList
->, java.util.Arrays.ArrayList
который не может быть приведен к типу java.util.ArrayList
.
Тогда вам придется использовать addAll
метод, который не так хорош. Так что просто используйтеList<String>
ПРИМЕЧАНИЕ . - Возвращаемый список Arrays.asList
является списком фиксированного размера. Если вы хотите добавить что-то в список, вам нужно будет создать еще один список и использовать его addAll
для добавления элементов. Итак, тогда вам лучше пойти по второму пути, как показано ниже:
String[] arr = new String[1];
arr[0] = "rohit";
List<String> newList = Arrays.asList(arr);
// Will throw `UnsupportedOperationException
// newList.add("jain"); // Can't do this.
ArrayList<String> updatableList = new ArrayList<String>();
updatableList.addAll(newList);
updatableList.add("jain"); // OK this is fine.
System.out.println(newList); // Prints [rohit]
System.out.println(updatableList); //Prints [rohit, jain]
Автор: Rohit Jain
Размещён: 12.10.2012 06:41
15 плюса
Я предпочитаю это,
List<String> temp = Arrays.asList(speciesArr);
species.addAll(temp);
Причина в том, что метод Arrays.asList () создаст список фиксированного размера. Так что если вы сохраните его непосредственно в виде, то вы не сможете добавить больше элемента, но он не доступен только для чтения. Вы можете отредактировать свои пункты. Так что возьмите это во временный список.
Альтернатива для этого есть,
Collections.addAll(species, speciesArr);
В этом случае вы можете добавлять, редактировать, удалять свои элементы.
Автор: Ravi A Размещён: 12.10.2012 07:1111 плюса
Думаю, я добавлю это к смеси:
Collections.addAll(result, preprocessor.preprocess(lines));
Это изменение, которое рекомендует Intelli.
из ага:
Adds all of the specified elements to the specified collection.
Elements to be added may be specified individually or as an array.
The behavior of this convenience method is identical to that of
<tt>c.addAll(Arrays.asList(elements))</tt>, but this method is likely
to run significantly faster under most implementations.
When elements are specified individually, this method provides a
convenient way to add a few elements to an existing collection:
<pre>
Collections.addAll(flavors, "Peaches 'n Plutonium", "Rocky Racoon");
</pre>
7 плюса
Вы должны создать свой экземпляр, ArrayList
прежде чем пытаться добавить элементы:
private List<String> species = new ArrayList<String>();
Автор: Jens Piegsa
Размещён: 12.10.2012 06:53
6 плюса
Arrays.asList является мостом между Array и структурой коллекции и возвращает список фиксированного размера, поддерживаемый Array.
species = Arrays.asList(speciesArr);
Автор: Subhrajyoti Majumder
Размещён: 12.10.2012 06:41
3 плюса
В Java 8 синтаксис для этого значительно упрощается и может использоваться для краткого выполнения этого преобразования.
Обратите внимание, вам нужно будет изменить свое поле с конкретной реализации на List
интерфейс, чтобы это работало гладко.
public class Wetland {
private String name;
private List<String> species;
public Wetland(String name, String[] speciesArr) {
this.name = name;
species = Arrays.stream(speciesArr)
.collect(Collectors.toList());
}
}
Автор: Makoto
Размещён: 11.04.2016 10:52
2 плюса
Arrays.asList()
метод просто возвращает List
тип
char [] arr = { 'c','a','t'};
ArrayList<Character> chars = new ArrayList<Character>();
Чтобы добавить массив в список, сначала преобразуйте его в список, а затем вызовите addAll
List arrList = Arrays.asList(arr);
chars.addAll(arrList);
Следующая строка вызовет ошибку компилятора
chars.addAll(Arrays.asList(arr));
Автор: webjockey
Размещён: 15.05.2017 03:51
1 плюс
Arrays.asList
это удобная функция, доступная в Java для преобразования переменной массива в список или коллекцию. Для лучшего понимания рассмотрим следующий пример:
package com.stackoverflow.works;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Wetland {
private String name;
private List<String> species = new ArrayList<String>();
public Wetland(String name, String[] speciesArr) {
this.name = name;
this.species = Arrays.asList(speciesArr);
}
public void display() {
System.out.println("Name: " + name);
System.out.println("Elements in the List");
System.out.println("********************");
for (String string : species) {
System.out.println(string);
}
}
/*
* @Description: Method to test your code
*/
public static void main(String[] args) {
String name = "Colors";
String speciesArr[] = new String [] {"red", "blue", "green"};
Wetland wetland = new Wetland(name, speciesArr);
wetland.display();
}
}
Выход:
1 плюс
ArrayList<String> arraylist= new ArrayList<String>();
arraylist.addAll( Arrays.asList("mp3 radio", "presvlake", "dizalica", "sijelice", "brisaci farova", "neonke", "ratkape", "kuka", "trokut"));
Автор: pikardtt
Размещён: 28.06.2014 08:26
0 плюса
Используйте asList()
метод. Из Ява Док asList
List<String> species = Arrays.asList(speciesArr);
Автор: Sumit Singh
Размещён: 12.10.2012 06:44
-2 плюса
public class duplicateArrayList {
ArrayList al = new ArrayList();
public duplicateArrayList(Object[] obj) {
for (int i = 0; i < obj.length; i++) {
al.add(obj[i]);
}
Iterator iter = al.iterator();
while(iter.hasNext()){
System.out.print(" "+iter.next());
}
}
public static void main(String[] args) {
String[] str = {"A","B","C","D"};
duplicateArrayList dd = new duplicateArrayList(str);
}
}
Автор: dnyaneshwar
Размещён: 19.07.2016 02:24
Вопросы из категории :
- java В чем разница между int и Integer в Java и C #?
- java Как я могу определить IP моего маршрутизатора / шлюза в Java?
- java Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- java Как округлить результат целочисленного деления?
- java Преобразование списка <Integer> в список <String>
- java Почему я не могу объявить статические методы в интерфейсе?
- java Библиотека Java SWIFT
- java Выключение компьютера
- java Как я могу воспроизвести звук на Java?
- java Когда выбирать отмеченные и непроверенные исключения
- arrays Как удалить дубликаты из массива C #?
- arrays Как определить размер моего массива в C?
- arrays Каков наилучший способ конвертировать массив в хеш в Ruby
- arrays Сравнение двухбайтовых массивов в .NET
- arrays Можно ли выполнять параллельные обходы в MATLAB так же, как в Python?
- arrays Haxe итерация на динамическом
- arrays .Net массивы с нижней границей> 0
- arrays Слияние двух массивов в .NET
- arrays Как удалить объекты из массива в Java?
- arrays ArrayList в Java и ввод