我有一个方法toString,它应该返回数组列表的连接元素字符串。我遇到的问题是无法将T类型的数组列表(因为它应该是泛型的)转换为字符串。
public class RandomStuffContainer<T extends Comparable<T>>
{
ArrayList<T> array = new ArrayList<T>();
public void main(String[] args){
ArrayList<T> array = new ArrayList<T>();
}
public String toString() {
StringBuilder sb = new StringBuilder();
ArrayList<String> data = (ArrayList<T>)array.clone();
for (String s : data)
{
sb.append(s);
sb.append("\t");
}
return data.toString();
}
下面的代码只是@camickr答案的后续,给出了将Java 8流API应用于所需的toString方法实现的示例:
import java.util.*;
import java.util.stream.*;
public class RandomStuffContainer<T extends Comparable<T>> {
List<T> array = new ArrayList<T>();
@Override
public String toString() {
return array.stream().map(Object::toString).collect(Collectors.joining("\t"));
}
// provide constructor, add/remove methods, etc. as needed
}
我遇到的问题是无法将T类型的数组列表(因为它应该是泛型的)转换为字符串。
您不需要将其转换为字符串。当需要对象的字符串表示时,只需调用对象上的方法。
也不需要clone(),因为您不会更改ArrayList中的任何数据:
import java.util.*;
public class RandomStuffContainer<T extends Comparable<T>>
{
ArrayList<T> array = new ArrayList<T>();
public void main(String[] args)
{
ArrayList<T> array = new ArrayList<T>();
}
public String toString()
{
StringBuilder sb = new StringBuilder();
//ArrayList<String> data = (ArrayList<T>)array.clone(); // not needed
//for (String s : array) // no need to use String here
for (T s : array)
{
//sb.append(s);
sb.append(s.toString());
sb.append("\t");
}
return sb.toString();
}
}
此外,您应该使用StringJoiner
类而不是使用StringBuilder类。此类将自动为您追加分隔符,并且不会将分隔符添加到最后一个标记。
上述更改只会使代码得以编译。它仍然不是一个可用的类,因为您没有向ArrayList实际添加数据的方法,并且必须编写代码来创建RandomStuffContainer类的实例。
问题内容: 我有点困惑。我在任何地方都找不到答案;( 我有一个String数组: 然后我通过以下方式将其转换为字符串: 我期望得到字符串,但是我却得到了字符串。 我该如何在Java中做到这一点?我正在使用Eclipse IDE 问题答案: 使用 StringBuilder 而不是StringBuffer,因为它比StringBuffer快 。 样例代码 这是使用字符串连接的更好解决方案的原因:当连
我有一个字符串数组,我将其按元素拆分,这样我就可以对其进行处理。现在我想把它们返回到一个句子中。 有没有一种方法可以在保留格式的同时将它们连接回一个句子?理想输出类似于以下内容:
问题内容: 这是一个错误吗? 我正在尝试按元素进行字符串连接。我以为Add()是在numpy中执行此操作的方法,但显然它没有按预期工作。 问题答案: 这可以使用numpy.core.defchararray.add完成。这是一个例子: NumPy数据类型还有其他有用的字符串操作。
问题内容: 我试图将字符串数组作为参数传递给Wetland类的构造函数;我不明白如何将字符串数组的元素添加到字符串数组列表。 问题答案: 您已经具有内置方法:- 注 : -您应该使用没有。 返回一个不同的-> ,不能将其类型转换为。 然后,您将不得不使用方法,这不是很好。所以就用 注意 :-返回的列表是固定大小的列表。如果要向列表中添加某些内容,则需要创建另一个列表,并用于向其中添加元素。所以,那
问题内容: 在Java中,从两个字符串数组返回公共元素的最有效方法是什么?我可以用一对for循环来做到这一点,但这似乎并不是很有效。根据对类似SO问题的评论,我能想到的最好的方法是转换为a ,然后应用:) 问题答案: 编辑: 这是单线的: 该IMPL(类AbstractCollection中)遍历,以及用途的说法。将参数转换为a 将导致快速查找,因此a中的循环将尽快执行。 另外,名称暗示它是一个常
我正在学习如何使用Spring靴和胸腺嘧啶。我有一个问题,我在表单列表中提供一个特定对象的列表到一个Thymeleaf页面。当用户选择值并发布结果时,结果是所选对象的字符串,并且与我想要存储值的对象不兼容。 这可能听起来像一口,所以下面是代码。 输入:一个类将一组成分传递给表单,这个类在一个类成分列表中传递给表单(过滤对此无关紧要--插入一个列表作为model属性的值,键是一种成分类型) Thym