小编dac*_*cwe的帖子

Map.keySet和Map.values上的迭代顺序相同?

对于像这样的地图:

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吗?

java collections

13
推荐指数
2
解决办法
4779
查看次数

计算图像锐度

是否有一个简单的算法来计算灰度图像的锐度值(或锐度)?

image image-processing

11
推荐指数
1
解决办法
3673
查看次数

用于处理基元和基元数组/集合的GUI库

我已经构建了许多 GUI:s并且我不喜欢依赖于库,所以我最终自己做了很多基础知识.我最后做的一件事就是将原语映射到GUI组件.

例如,如果它是一个boolean我经常使用JCombobox两个选项("true","false"),如果它是int我使用JTextField.大部分工作都是来自文本......

一些示例映射:

  • intInteger=> JTextFieldJSpinner
  • boolean=> JTextField,JComboBoxJCheckBox
  • int[]=> JList(带"添加"字段和"删除"按钮)
  • Set<Byte> =>可能与数组相同

所以,对于问题:

  • 是否已经有一个像这样的映射的库或者我是否需要再次"发明"它?
  • 我见过使用反射和SWT作为前端的jfg(你可以使用swing实现一个新的前端,但这正是我想要避免的).是否有使用摆动和反射的类似图书馆?

java swing

11
推荐指数
1
解决办法
263
查看次数

在内存中下载并解压缩zip存档

我想下载一个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)

php zip unzip

9
推荐指数
2
解决办法
1万
查看次数

Scala:Hello World Script不起作用

我正在学习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的某些问题?

scala

9
推荐指数
1
解决办法
4158
查看次数

在jPanel上显示动画gif

在我的重写函数中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上的动画(不使用线程).我花了很多时间试图让它工作,但无济于事.

java

8
推荐指数
1
解决办法
2万
查看次数

泛型的泛型和更通用的<?>赋值

有时我只是没有得到泛型.我经常在代码中使用最通用的集合版本.例如,如果我需要一套任何我会写的东西:

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 generics

8
推荐指数
2
解决办法
1048
查看次数

将.class文件添加到Eclipse项目中

这是一个全新的问题,但我无法理解,所以我想我会在这里问它,看看发生了什么.

问题出在这里:对于我的java编程类,我们应该下载由我们的教师创建的.class文件,该文件包含一个定制的类,其中包含我们应该在赋值中使用的方法.我已经知道在我的实际程序中创建类的所有代码,但我无法确定将.class文件放在哪个目录中.我已经尝试了项目目录中的src和bin文件夹,甚至放置它直接进入项目目录,但似乎没什么用.我的教师说只是将它放在与我的java程序相同的目录中,但他们使用的是jGRASP.我究竟做错了什么?

java eclipse class

6
推荐指数
1
解决办法
3万
查看次数

特别进口和全面进口的好处和缺点

我注意到,人们更喜欢进口javax.swing.JFrame替代javax.swing.*,进口java.math.BigInteger替代java.math.*,等等...是否有进口全包的任何缺点,而不是专门进口的或者是有专门导入任何上升空间?

java

6
推荐指数
1
解决办法
110
查看次数

pthread条件变量vs win32事件(linux vs windows-ce)

我正在使用arm imx27板在Windows CE和Linux之间进行性能评估.代码已经为CE编写并测量了执行不同内核调用所需的时间,例如使用OS原语(如互斥锁和信号量),打开和关闭文件以及联网.

在我将这个应用程序移植到Linux(pthreads)期间,我偶然发现了一个我无法解释的问题.几乎所有测试都显示性能提高了5到10倍,但不是我的win32事件版本(SetEventWaitForSingleObject),CE实际上"赢了"这个测试.

为了模仿我使用pthreads条件变量的行为(我知道我的实现并没有完全模拟CE版本,但它足以进行评估).

测试代码使用两个使用事件相互"乒乓"的线程.


Windows代码:

线程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)

Linux代码:

线程1 :(我测量的线程)

struct event_flag *event1, *event2;
event1 = eventflag_create();
event2 = eventflag_create();

for (i = 0; i < 10000; …
Run Code Online (Sandbox Code Playgroud)

linux windows events pthreads windows-ce

6
推荐指数
1
解决办法
8962
查看次数