对于像这样的地图:
Map<Integer, Integer> map = ...;
map.put(1, 1);
map.put(2, 2);
map.put(3, 3);
map.put(4, 4);
Run Code Online (Sandbox Code Playgroud)
这个代码是......
for (Integer i : map.keySet()) System.out.println(i);
for (Integer i : map.values()) System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
...保证两次打印相同的序列?
如果没有,例如有任何保证java.util.HashMap吗?
我已经构建了许多 GUI:s并且我不喜欢依赖于库,所以我最终自己做了很多基础知识.我最后做的一件事就是将原语映射到GUI组件.
例如,如果它是一个boolean我经常使用JCombobox两个选项("true","false"),如果它是int我使用JTextField.大部分工作都是来自文本......
一些示例映射:
int或Integer=> JTextField或JSpinnerboolean=> JTextField,JComboBox或JCheckBoxint[]=> JList(带"添加"字段和"删除"按钮)Set<Byte> =>可能与数组相同所以,对于问题:
我想下载一个zip存档,并使用PHP将其解压缩到内存中.
这就是我今天所拥有的(而且对我来说文件处理太多:)):
// download the data file from the real page
copy("http://www.curriculummagic.com/AdvancedBalloons.kmz", "./data/zip.kmz");
// unzip it
$zip = new ZipArchive;
$res = $zip->open('./data/zip.kmz');
if ($res === TRUE) {
$zip->extractTo('./data');
$zip->close();
}
// use the unzipped files...
Run Code Online (Sandbox Code Playgroud) 我正在学习Scala而且我被困在hello world脚本中.
我的hello.scala是:
Console.println("Hello World")
Run Code Online (Sandbox Code Playgroud)
我正在运行这样的脚本:
scala hello.scala
Run Code Online (Sandbox Code Playgroud)
我得到一个奇怪的例外:
java.net.UnknownHostException: salil: salil: Name or service not known
at java.net.InetAddress.getLocalHost(InetAddress.java:1438)
at scala.tools.nsc.io.Socket$.localhost(Socket.scala:38)
at scala.tools.nsc.CompileSocket.getsock$1(CompileSocket.scala:169)
at scala.tools.nsc.CompileSocket.getOrCreateSocket(CompileSocket.scala:184)
at scala.tools.nsc.ScriptRunner.compileWithDaemon(ScriptRunner.scala:80)
at scala.tools.nsc.ScriptRunner.compile$1(ScriptRunner.scala:123)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply$mcZ$sp(ScriptRunner.scala:157)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:131)
at scala.tools.nsc.ScriptRunner$$anonfun$withCompiledScript$1.apply(ScriptRunner.scala:131)
at scala.tools.nsc.util.package$.waitingForThreads(package.scala:26)
at scala.tools.nsc.ScriptRunner.withCompiledScript(ScriptRunner.scala:130)
at scala.tools.nsc.ScriptRunner.runScript(ScriptRunner.scala:188)
at scala.tools.nsc.ScriptRunner.runScriptAndCatch(ScriptRunner.scala:201)
at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala
Run Code Online (Sandbox Code Playgroud)
我的SCALA_HOME是/opt/scala-2.9.1.final
,我的Path里面有$ SCALA_HOME/bin.
我的JAVA_HOME是:/usr/java/jdk1.7.0
这是我的设置的问题还是由于Scala库和JDK1.7的某些问题?
在我的重写函数中JFrame:
@Override
protected void paintComponent(Graphics g) {
BufferedImage imagePerson;
try {
imagePerson = ImageIO.read(new File("errol.gif"));
} catch (IOException e) {
imagePerson = null;
}
g.drawImage(imagePerson, i * increment, j * increment - 1, null);
}
Run Code Online (Sandbox Code Playgroud)
如何更改此设置以显示gif上的动画(不使用线程).我花了很多时间试图让它工作,但无济于事.
有时我只是没有得到泛型.我经常在代码中使用最通用的集合版本.例如,如果我需要一套任何我会写的东西:
Set<?> set1 = new HashSet<Object>();
Run Code Online (Sandbox Code Playgroud)
编译器允许它,为什么不应该 - 它Set<?>是一般的Set<Object>(甚至更通用的..).但是,如果我使用"泛型的泛型"使它"更通用",那就不起作用:
Set<Class<?>> singletonSet = new HashSet<Class<Object>>(); // type mismatch
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?为什么是Set<Object>分配给Set<?>并且Set<Class<Object>>是不能分配给Set<Class<?>>?
我总是找到解决这些问题的办法,但在这种情况下,我真的想知道为什么这是不允许的,而不是解决方法.
这是一个全新的问题,但我无法理解,所以我想我会在这里问它,看看发生了什么.
问题出在这里:对于我的java编程类,我们应该下载由我们的教师创建的.class文件,该文件包含一个定制的类,其中包含我们应该在赋值中使用的方法.我已经知道在我的实际程序中创建类的所有代码,但我无法确定将.class文件放在哪个目录中.我已经尝试了项目目录中的src和bin文件夹,甚至放置它直接进入项目目录,但似乎没什么用.我的教师说只是将它放在与我的java程序相同的目录中,但他们使用的是jGRASP.我究竟做错了什么?
我注意到,人们更喜欢进口javax.swing.JFrame替代javax.swing.*,进口java.math.BigInteger替代java.math.*,等等...是否有进口全包的任何缺点,而不是专门进口的或者是有专门导入任何上升空间?
我正在使用arm imx27板在Windows CE和Linux之间进行性能评估.代码已经为CE编写并测量了执行不同内核调用所需的时间,例如使用OS原语(如互斥锁和信号量),打开和关闭文件以及联网.
在我将这个应用程序移植到Linux(pthreads)期间,我偶然发现了一个我无法解释的问题.几乎所有测试都显示性能提高了5到10倍,但不是我的win32事件版本(SetEvent和WaitForSingleObject),CE实际上"赢了"这个测试.
为了模仿我使用pthreads条件变量的行为(我知道我的实现并没有完全模拟CE版本,但它足以进行评估).
测试代码使用两个使用事件相互"乒乓"的线程.
线程1 :(我测量的线程)
HANDLE hEvt1, hEvt2;
hEvt1 = CreateEvent(NULL, FALSE, FALSE, TEXT("MyLocEvt1"));
hEvt2 = CreateEvent(NULL, FALSE, FALSE, TEXT("MyLocEvt2"));
ResetEvent(hEvt1);
ResetEvent(hEvt2);
for (i = 0; i < 10000; i++)
{
SetEvent (hEvt1);
WaitForSingleObject(hEvt2, INFINITE);
}
Run Code Online (Sandbox Code Playgroud)
线程2 :(只是"回应")
while (1)
{
WaitForSingleObject(hEvt1, INFINITE);
SetEvent(hEvt2);
}
Run Code Online (Sandbox Code Playgroud)
线程1 :(我测量的线程)
struct event_flag *event1, *event2;
event1 = eventflag_create();
event2 = eventflag_create();
for (i = 0; i < 10000; …Run Code Online (Sandbox Code Playgroud)