从java中的arrayList打印数组

时间:2016-12-03 10:36:47

标签: java arrays arraylist

我正在尝试打印arrayList,但我得到的是这样的东西。

  

[[Ljava.lang.String; @ 506c589e,[Ljava.lang.String; @ 69d0a921,   [Ljava.lang.String; @ 446cdf90]

我也试过但没有结果。

  

Arrays.toString(list.get(0))

请帮忙。

public ArrayList getByName(String name) {
    try {
        preSt = con.prepareStatement("SELECT * FROM DATA WHERE name=?");
        preSt.setString(1, name);
        rs = preSt.executeQuery();
        ArrayList list = new ArrayList();
        int i = 0;
        while(rs.next()) {
            Object[] temp = new String[3];
            temp[0] = rs.getString("name");
            temp[1] = rs.getString("surname");
            temp[2] = rs.getString("age");
            list.add(i, temp);
            i++;
        }
        System.out.println(list);
        return list;
    } catch (Exception ex) {
        System.out.println("Error: "+ex);
    }
    return null;
}

3 个答案:

答案 0 :(得分:3)

打印该列表的最简单方法是迭代它。请记住,该列表的每个元素本身都是一个数组,因此您需要Arrays.toString来打印它。

List<Object[]> list = new ArrayList<>();

// populate it in here

for(Object[] array : list) {
    System.out.println(Arrays.toString(array));
}

答案 1 :(得分:1)

由于您已经在使用数组,因此您可以考虑使用此方法来避免编写手动编码循环:

System.out.println(Arrays.deepToString(list.toArray()));

答案 2 :(得分:-1)

你可以试试这个

public ArrayList getByName(String name) {
    try {
        preSt = con.prepareStatement("SELECT * FROM DATA WHERE name=?");
        preSt.setString(1, name);
        rs = preSt.executeQuery();
        ArrayList list = new ArrayList();
        int i = 0;
        while(rs.next()) {
            Object[] temp = new String[3];
            temp[0] = rs.getString("name");
            temp[1] = rs.getString("surname");
            temp[2] = rs.getString("age");
            list.add(i, temp);
            i++;
        }
        for(int i=0;i<list.size();i++){
            System.out.println(list[i]);
        }
        return list;
    } catch (Exception ex) {
        System.out.println("Error: "+ex);
    }
    return null;
}