我希望修改 toString() 方法,以便我的 print 语句返回“一些随机文本”
HashSet<List<Integer>> set = new HashSet<List<Integer>>(){
@Override
public String toString(){
return "some random text";
}
};
//Code that assigns some values to the set variable
for(List<Integer>subSequence:set){
System.out.println(subSequence.toString());
} //Still prints the values in the Lists
如何为集合中的每个列表打印“一些随机文本”?
最佳答案
您覆盖 toString()
匿名方法HashSet
类。
当您在代码中调用toString()
时HashSet
的元素的方法:List<Integer>
.
因此不会使用重写方法。
How can I get "some random text" to print for every List in the set?
您不能使用实际方法 List
实现有自己的toString()
实现。
您可以创建并使用您自己的List
实现能够覆盖 toString
但对于如此简单的需求来说,它似乎过于复杂。
如果我是你,我会定义 toString()
实现匿名HashSet
类来迭代元素,我将显示每个元素的消息:
HashSet<List<Integer>> set = new HashSet<List<Integer>>() {
@Override
public String toString() {
if (size() == 0) {
return "";
}
StringBuilder sb = new StringBuilder();
Iterator<List<Integer>> it = iterator();
sb.append('[');
for (;;) {
it.next();
sb.append("some random text");
if (!it.hasNext()) {
return sb.append(']').toString();
}
sb.append(',').append(' ');
}
}
};
关于java - 为迭代变量重写 toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46017676/