Java 如何将字符串数组的元素添加到字符串数组列表中?
我试图将字符串数组作为参数传递给类的构造函数; 我不明白如何将字符串数组的元素添加到字符串数组列表中Java 如何将字符串数组的元素添加到字符串数组列表中?,java,arrays,Java,Arrays,我试图将字符串数组作为参数传递给类的构造函数; 我不明白如何将字符串数组的元素添加到字符串数组列表中 import java.util.ArrayList; public class Wetland { private String name; private ArrayList<String> species; public Wetland(String name, String[] speciesArr) { this.name = na
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]);
}
}
}
import java.util.ArrayList;
公营湿地{
私有字符串名称;
私有ArrayList物种;
公共湿地(字符串名称,字符串[]speciesArr){
this.name=名称;
对于(int i=0;i
Arrays.asList是数组和集合框架之间的桥梁,它返回一个由数组支持的固定大小的列表
species = Arrays.asList(speciesArr);
您已经有了用于此的内置方法:-
List<String> species = Arrays.asList(speciesArr);
使用asList()
方法。来自java文档
List species=Arrays.asList(speciesArr);
在尝试添加项目之前,您应该实例化您的ArrayList
:
private List<String> species = new ArrayList<String>();
private List species=new ArrayList();
数组。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();
}
}
package com.stackoverflow.works;
导入java.util.ArrayList;
导入java.util.array;
导入java.util.List;
公营湿地{
私有字符串名称;
私有列表物种=新ArrayList();
公共湿地(字符串名称,字符串[]speciesArr){
this.name=名称;
this.species=Arrays.asList(speciesArr);
}
公共空间显示(){
System.out.println(“名称:”+Name);
System.out.println(“列表中的元素”);
System.out.println(“**********************”);
用于(字符串:种类){
System.out.println(字符串);
}
}
/*
*@Description:测试代码的方法
*/
公共静态void main(字符串[]args){
String name=“Colors”;
字符串speciesArr[]=新字符串[]{“红色”、“蓝色”、“绿色”};
湿地=新湿地(名称、种类);
湿地。显示();
}
}
输出:
我更喜欢这个
List<String> temp = Arrays.asList(speciesArr);
species.addAll(temp);
在这种情况下,您可以添加、编辑和删除项目。ArrayList ArrayList=new ArrayList();
ArrayList<String> arraylist= new ArrayList<String>();
arraylist.addAll( Arrays.asList("mp3 radio", "presvlake", "dizalica", "sijelice", "brisaci farova", "neonke", "ratkape", "kuka", "trokut"));
arraylist.addAll(Arrays.asList(“mp3收音机”、“presvlake”、“dizalica”、“sijelice”、“brisaci farova”、“neonke”、“ratkape”、“kuka”、“trokut”);
我想我会把这个加入到混合中:
Collections.addAll(result, preprocessor.preprocess(lines));
这是Intelli建议的更改
从javadocs:
将所有指定元素添加到指定集合。
要添加的元素可以单独指定,也可以作为数组指定。
此方便方法的行为与
c、 addAll(Arrays.asList(elements)),但此方法很可能
在大多数实现下运行得更快。
单独指定元素时,此方法提供
向现有集合添加一些元素的便捷方法:
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());
}
}
收藏。addAll(口味,“桃子钚”,“岩石浣熊”);
在Java 8中,此转换的语法大大简化,并可用于简洁地完成此转换
请注意,您需要将字段从具体实现更改为列表
界面,以使其顺利工作
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);
}
}
公共类湿地{
私有字符串名称;
私人名单物种;
公共湿地(字符串名称,字符串[]speciesArr){
this.name=名称;
物种=阵列。流(物种阵列)
.collect(Collectors.toList());
}
}
公共类duplicateArrayList{
ArrayList al=新的ArrayList();
公共重复ArrayList(对象[]obj){
for(int i=0;i
数组。asList()
方法只返回List
类型
List arrList = Arrays.asList(arr);
chars.addAll(arrList);
以下行将导致编译器错误
Arrays.asList返回一个对象@rorrohprog如果你读了它说它返回
列表
@rorrohprog的文档,为什么它不编译?我有吗?我之所以看不到这一点,是因为您使用了错误的Arrays
或List
classes.Arrays.asList返回了一个对象!duh@rorrohprog看一看@rorroprog,我认为您使用的是较旧的JDK@rorroprog。。它不返回对象,而是返回一个列表,其中t是您传递的数组类型。见@Rorroprog。我想你应该试试这个代码。查看我提供的链接。@RohitJain您不能从java.util.Arrays.ArrayList
(从Arrays.asList()
到java.util.ArrayList
@maba的结果)。是的,编辑了这篇文章。ArrayList
返回的与asList
方法不同。需要注意的是Collections.addAll()
是首选方法:此便利方法的行为与c.addAll(Arrays.asList(elements))的行为相同,但在大多数实现中,此方法的运行速度可能要快得多。(Javadoc)这并不是真正的问题所在。
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());
}
}
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);
}
}
char [] arr = { 'c','a','t'};
ArrayList<Character> chars = new ArrayList<Character>();
List arrList = Arrays.asList(arr);
chars.addAll(arrList);
chars.addAll(Arrays.asList(arr));