从Java的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;
}

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

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

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

List<Object[]> list = new ArrayList<>();
// populate it in here
for(Object[] array : list) {
    System.out.println(Arrays.toString(array));
}

您可以尝试此

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

最新更新