我有一个奇怪的问题,如果我能解决它会很好.出于调试目的(以及其他一些事情),我正在标准输出上编写控制台Java应用程序的日志.有些东西是标准出来的,有些东西就像错误一样打印在标准错误上.问题是这两者并不完全同步,因此打印线的顺序并不总是正确的.我想这是因为打印了许多东西,并且发生一个输出的缓冲区已满,所以另一个输出在第一个输出刷新缓冲区之前打印.
我想写这个:
syso: aaa
syso: bbb
syso: ccc
syso: ddd
syso: eee
syserr: ---
Run Code Online (Sandbox Code Playgroud)
有时打印的是
aaa
bbb
ccc
---
ddd
eee
Run Code Online (Sandbox Code Playgroud)
有时两者之间没有新线,所以它看起来像
aaa
bbb
ccc---
ddd
eee
Run Code Online (Sandbox Code Playgroud)
每次我在输出上打印一些东西时,我用相同的输出刷新
System.out.flush();
Run Code Online (Sandbox Code Playgroud)
要么
System.err.flush();
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题呢?顺便说一句,一切都在Eclipse控制台中打印出来.
我想绘制几个图并将它们组合成一个图.我将在一个例子中解释这个问题.假设我想用这些点绘制两个图:
图#1(X和Y定义坐标).
X - Y
_____
1 - 5
2 - 5
5 - 7
9 - 10
Run Code Online (Sandbox Code Playgroud)
图#2
X - Y
_____
6 - 8
8 - 12
9 - 7
12 - 8
15 - 11
21 - 11
Run Code Online (Sandbox Code Playgroud)
我所做的是创建一个图表,然后单击"选择数据".在那里,我创建了两个系列,并选择X和Y值.但是,这不起作用,因为它不允许我为不同的图形选择不同的X值.虽然我为这两个系列选择了不同的X值,但是为这两个系列选择了第二个.这就是它最终的样子:

你知道怎么解决这个问题吗?我正在使用Excel 2008 for Mac.
我有一个错误说的问题ERROR: 'Java heap space'.我按照这些说明来增加Eclipse的堆大小,但它不起作用.Eclipse似乎忽略了给定的值.我的eclipse.ini文件看起来像这样:
-startup
../../../plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:MaxPermSize=512m
-Xms512m
-Xmx1024m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.ecli
pse.swt.internal.carbon.smallFonts
Run Code Online (Sandbox Code Playgroud)
Eclipse版本是在Mac上运行的3.6.1.
什么想法可能是错的?
我的哈希表看起来像这样:
Hashtable<Mapping, Integer> mappingCount = new Hashtable<Mapping, Integer>();
Run Code Online (Sandbox Code Playgroud)
我想使用这段代码:
if (mappingCount.get(currentMapping) != null)
mappingCount.put(currentMapping, mappingCount.get(currentMapping) + 1);
else
mappingCount.put(currentMapping, 1);
Run Code Online (Sandbox Code Playgroud)
为了能够从散列表中获取值,对于类,Mapping我执行了以下操作:
@Override
public boolean equals(Object obj) {
return ((Mapping)obj).mappingXML.equals(this.mappingXML);
}
Run Code Online (Sandbox Code Playgroud)
但是,由于mappingCount.get(currentMapping)总是导致这种情况不起作用null.为了确保没有错,我做了以下事情:
if (aaa.contains(currentMapping.getMappingXML()))
System.out.println("found it!");
else
aaa.add(currentMapping.getMappingXML());
Run Code Online (Sandbox Code Playgroud)
哪里aaa是List<String> aaa = new ArrayList<String>().当然,found it是多次打印.我究竟做错了什么?