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));