use*_*843 1 java bufferedwriter long-integer
我尝试这个时遇到上述错误
for (int i = 0 ; i < uaCount.get(args[1]).occurrences ; i++)
{
out.write(uaCount.get(args[1]).singleValues.get(i));
}
Run Code Online (Sandbox Code Playgroud)
这里定义了出现次数和单值:
public static class NumberHolder
{
public int occurrences = 0;
public int sumtime_in_milliseconds = 0;
public ArrayList<Long> singleValues = new ArrayList<Long>();
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解决这个问题吗?
鉴于问题的标题,我的猜测是你只想String.valueOf用来创建一个字符串:
for (int i = 0 ; i < uaCount.get(args[1]).occurrences ; i++)
{
out.write(String.valueOf(uaCount.get(args[1]).singleValues.get(i)));
}
Run Code Online (Sandbox Code Playgroud)
请注意,值之间不会有任何分隔符.我还建议,为了便于阅读,你会写一些类似于:
NumberHolder holder = uaCount.get(args[1]);
for (int i = 0; i < holder.occurrences; i++)
{
long value = holder.singleValues.get(i);
out.write(String.valueOf(value));
// Maybe out.write(" ") or something similar, as a separator?
}
Run Code Online (Sandbox Code Playgroud)
此外,我强烈建议您不要像现在这样使用公共字段.尝试更仔细地封装您的类型.如果occurrences实际上是列表的大小,您可以使用增强型for循环来简化操作.例如:
for (long value : uaCount.get(args[1]).getSingleValues()) {
out.write(String.valueOf(value));
}
Run Code Online (Sandbox Code Playgroud)