将数组插入arraylist的最佳方法

时间:2018-08-30 03:38:47

标签: java android

我尝试将数组放入数组列表

ArrayList <DNA> matingppool;

数组为0和1

当我尝试以某种方式在logcat中显示它时

population [letsmat [i]].getBiner ()

结果是

[I @ 25a0766d

但是当我以某种方式显示logcat时

Arrays.toString (population[letsmat[i]].getBiner ())

logcat显示

[0, 0, 0, 1]

问题是

  

将数组输入到池arraylist中以使arraylist再次返回数组值的最佳方法是什么?

matingppool.add (population [letsmat [i]]);

或这个

matingppool.add (Arrays.toString (population [letsmat [i]]. getBiner ()));

“ [I @ 25a0766d”代表数组吗?

4 个答案:

答案 0 :(得分:1)

有两种方法可以将数组添加到arraylist中,  ->第一个使用arrays.asList()

ArrayList<String> arrayList=new ArrayList<>();
String[] data=new String[]{"ABC","DEF","GHI"};

arrayList.addAll(Arrays.asList(data));

->第二个是使用Colliections,

    ArrayList<String> arrayList=new ArrayList<>();
    String[] data=new String[]{"ABC","DEF","GHI"};
    Collections.addAll(arrayList, data);

这将为您工作。

答案 1 :(得分:1)

要了解这表示什么:[I @ 25a0766d,请转到下面的链接 https://stackoverflow.com/a/8410311/1664430

您可以使用Arrays.asList()的{​​{1}}和addAll方法来简化实现。下面是示例代码

List

如果您的目的是在public static void main(String[] args) { List<String> lst = new ArrayList<>(); String[] strLst = { "1,", "2", "3" }; lst.addAll(Arrays.asList(strLst)); System.out.println(lst); } 上进行打印/迭代,则也可以使用lambda表达式

Array

答案 2 :(得分:0)

好的,我对您的问题的理解是,我们假设有一个User

public class User {

private String userId;
private String userName;
private String userEmail;

public String getUserId() {
    return userId;
}

public void setUserId(String userId) {
    this.userId = userId;
}

public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}

public String getUserEmail() {
    return userEmail;
}

public void setUserEmail(String userEmail) {
    this.userEmail = userEmail;
}

public String toString() {
    return userId + " " + userName + " " + userEmail;
}
}

如果我们创建ArrayList中的Class User,并使用它打印

ArrayList<User> users = new ArrayList<>();
//Add Items in ArrayList 

用于打印使用代码

for(Users user : users){
Log.d("TAG",user.toString);
}

它将打印User ArrayList中的值。不要忘记在Model类中添加toString()方法

希望它对您有帮助。

答案 3 :(得分:-1)

请仔细阅读以下示例。
覆盖toString()方法以在系统输出中打印Class对象。
如果不清楚,请发表评论。

public static void main(String[] args) {

    //Part1: Add toString() Method in DNA class
    ArrayList<DNA> matingPool = new ArrayList<>();
    matingPool.add(new DNA());
    matingPool.add(new DNA());
    matingPool.add(new DNA());
    System.out.println(matingPool);

    //Part2: use AddAll to add all the objects in one go.
    ArrayList<DNA> newMatingPool = new ArrayList<>(); // You can do new ArrayList<>(matingPool) as well.
    newMatingPool.addAll(matingPool);
    System.out.println(newMatingPool);

}

static class DNA {
    int a;
    String b;

    public DNA() {
        this.a = 10;
        this.b = "BB";
    }

    @Override
    public String toString() {
        return "DNA{" +
                "a=" + a +
                ", b='" + b + '\'' +
                '}';
    }
}