Java ArrayList和toString

Java ArrayList和toString,java,collections,arraylist,tostring,Java,Collections,Arraylist,Tostring,我想问一下,如何使用ArrayList存储toString()。我有一个类,末尾有一个toString,我必须将该类中的toString存储到ArrayList中 如:音乐名称、作者、发行年份、当前播放 String,String,int,boolean您可以使用“”+x技巧,以避免NullPointerException在x为空的情况下: public List<String> musicToString(List<Music> musicList) { final

我想问一下,如何使用ArrayList存储toString()。我有一个类,末尾有一个toString,我必须将该类中的toString存储到ArrayList中

如:音乐名称、作者、发行年份、当前播放 String,String,int,boolean

您可以使用
“”+x
技巧,以避免
NullPointerException
x
为空的情况下:

public List<String> musicToString(List<Music> musicList) {
  final List<String> strings = new ArrayList<String>();
  for (Music m : musicList) strings.add("" + m);
  return strings;
}
公共列表musicToString(列表musicList){
最终列表字符串=新的ArrayList();
用于(音乐m:musicList)字符串。添加(“+m”);
返回字符串;
}
这是因为串联运算符
+
对所有引用类型的操作数隐式调用
String.valueOf

如果这是您的审美偏好,您还可以显式地编写
String.valueOf
。它还具有绝对不实例化
StringBuilder
的边际好处(尽管编译器很有可能会避免这种情况,因为它可以看到空字符串文字)。

您可以使用
“+x
技巧,以避免
如果
x
为空,则出现
空点异常:

public List<String> musicToString(List<Music> musicList) {
  final List<String> strings = new ArrayList<String>();
  for (Music m : musicList) strings.add("" + m);
  return strings;
}
公共列表musicToString(列表musicList){
最终列表字符串=新的ArrayList();
用于(音乐m:musicList)字符串。添加(“+m”);
返回字符串;
}
这是因为串联运算符
+
对所有引用类型的操作数隐式调用
String.valueOf


如果这是您的审美偏好,您还可以显式地编写
String.valueOf
。它还具有绝对不实例化
StringBuilder
的边际好处(尽管编译器很有可能避免这种情况,因为它可以看到空字符串文字)。

希望您在特定类的
toString()
方法中正确格式化了文本,
使用

List-listed=新的ArrayList(10);
添加(myMusicDataClassInstance.toString());

希望您在特定类的
toString()方法中正确格式化了文本,
使用

List-listed=新的ArrayList(10);
添加(myMusicDataClassInstance.toString());

您应该为该类重写
toString()
,并在
toString()
方法中定义将该字符串转换为
ArrayList
对象的业务逻辑。

您应该为该类重写
toString()
method定义将该字符串转换为
ArrayList
对象的业务逻辑。

问题不清楚,但如果您的对象已经定义了toString()方法,则不需要在数组列表中单独存储它们。只需将对象添加到arrayList中,然后执行集合

这个问题还不清楚,但如果您的对象已经定义了toString()方法,则不需要在数组列表中单独存储它们。只需将对象添加到arrayList中,然后执行集合

List-listed=新的ArrayList(10);
列表所需=新的ArrayList(10);


我不确定我是否遵循了。。。你到底是什么意思?你的意思是在类文件的末尾声明了方法吗?你需要在这个网站上尽可能具体,并且经常发布代码来让你的问题完全被理解。也欢迎来到StackOverFlow!你的代码在哪里,你已经尝试了什么?我不确定我是否遵循。。。你到底是什么意思?你的意思是在类文件的末尾声明了方法吗?你需要在这个网站上尽可能具体,并且经常发布代码来让你的问题完全被理解。也欢迎来到StackOverFlow!您的代码在哪里?您已经尝试了什么?为什么将数组列表大小设置为10?@luketorjussen:为什么不?零参数构造函数也做同样的事情,只是隐式的。@home如果它隐式地做了,那么为什么还要写它呢?@luketorjussen-为对象使用哪个构造函数没有什么错。10只是个巧合。我找不到否决投票的理由。@home,我知道如果你知道你将拥有多少物品,为什么会有人说出来,否则读起来有点困惑为什么要将数组列表大小设置为10?@luketorjussen:为什么不?零参数构造函数也做同样的事情,只是隐式的。@home如果它隐式地做了,那么为什么还要写它呢?@luketorjussen-为对象使用哪个构造函数没有什么错。10只是个巧合。我找不到否决投票的理由。@home,我知道如果你知道你将拥有多少物品,为什么会有人这样说,否则读起来有点混乱。你也可以使用String.valueOf();你应该用String.valueOf()代替concatenation,我为什么要用@unbeli?我经常使用连接,因为它写起来比较短。除非我在编写性能关键型代码,否则有什么害处?你能详细说明一下吗?或者你只是喜欢向下投票吗?因为用空字符串连接基本上是一种攻击。String.valueOf更易于阅读。String.valueOf直接显示您的意图。valueOf不会创建StringBuffer。公平地说,易于阅读的内容非常依赖于上下文。如果您有一个始终使用
“+m
”的完整项目——我曾参与过此类项目——那么它同时简洁、可读,并以最清晰的方式显示了作者的意图。您还可以使用String.valueOf();你应该用String.valueOf()代替concatenation,我为什么要用@unbeli?我经常使用连接,因为它写起来比较短。除非我在编写性能关键型代码,否则有什么害处?你能详细说明一下吗?或者你只是喜欢向下投票吗?因为用空字符串连接基本上是一个hac
List<String> listDesired = new ArrayList<String>( 10 );