我想将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
答案 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说这是正确的。