如何将ArrayList instanceObject转换为toString

时间:2014-10-21 11:24:01

标签: java sql

我想将ArrayList中的类实例转换为toString,这里有我的代码

用户类:

public class User { 
    // ...

    public void setName(String name) {
        this.fullname = name;
    }

    @Override
    public String toString() {
        return this.fullname;
    } 

    public ArrayList<User> getTheLikers() {
        ArrayList<User> user = new ArrayList<>();
        user.add(this);

        return user;
    }

发布课程:

public class Post {
    public ArrayList<User> getLikers() {
        User a = new User();
        ArrayList<User> b = a.getTheLikers();

        return b;
    }

以下是我应该获取getLikers()

的代码
while(rs.next()) {
    User a = new User();
    Post b = new Post();
    String name = rs.getString("people_who_like");
    a.setName(name);

    ArrayList c;
    c = b.getLikers();
    String liker = c.toString();
    p.addElement(liker);
}

我已经将它转换为toString,你可以看到..但它显示我显示了我的值,但它是null

3 个答案:

答案 0 :(得分:0)

ArrayList转换为String。这就是问题所说的具体内容。

ArrayList c;
c = b.getLikers();    
String liker = ""; 
for (String s : c){
    liker += s + "\t";
}

答案 1 :(得分:0)

使用 Java 8 时,您可以使用String#join

String liker = String.join(", ", c);

或Stream API:

String liker = c.stream().collect(Collectors.joining(", "));

Pre Java 8 您使用过,例如番石榴为此或写我们自己的功能

public static String listToString(final List<String> list) {
    final StringBuilder result = new StringBuilder();

    for (int i = 0; i < list.size() - 1; i++) {
        result.append(list.get(i));
        result.append(", ");
    }
    result.append(list.get(list.size() - 1));

    return result.toString();
}

答案 2 :(得分:0)

即使是具有方法List.toString()的列表,其中u也可以列入String格式。

在这里,你可以使用你的列表转换成字符串。

将静态变量用于列表。

    public class MainClass {
    static ArrayList<String> arrayList = new ArrayList<String>();

    public static void main(String args[]) {

        arrayList.add("Krish");
        arrayList.add("Krish1");
        arrayList.add("Krish2");
        arrayList.add("Krish3");
        arrayList.add("Krish4");

        System.out.println(arrayList.toString());

    }
}

类似你可以使用像这样的tostring方法。如果你只使用arraylist那么它将以字符串格式发出put。

其他方式。

public static String arrayliststring(ArrayList arrayList) {
        StringBuffer buffer = new StringBuffer();
        for (int i = 0; i < arrayList.size(); i++) {
            buffer.append(arrayList.get(i).toString() + " ");
        }
        return buffer.toString();
    }

希望这有助于java 8,因为ifloop说这是正确的。