问题列表 - 第6310页

实现Map并保持插入顺序的Java类?

我正在寻找一个具有键值关联的java类,但不使用哈希.这是我目前正在做的事情:

  1. 添加值到a Hashtable.
  2. 获取一个迭代器Hashtable.entrySet().
  3. 迭代所有值并:
    1. 获取一个Map.Entry迭代器.
    2. Module根据值创建类型(自定义类)的对象.
    3. 将类添加到JPanel.
  4. 显示面板.

这个问题是我无法控制返回值的顺序,所以我不能以给定的顺序显示值(不对代码进行硬编码).

我会使用一个ArrayListVector为此,但稍后在代码中我需要抓取Module给定Key 的对象,我无法使用ArrayListVector.

有没有人知道一个可以执行此操作的免费/开源Java类,或者Hashtable根据添加时间来获取值的方法?

谢谢!

java dictionary key-value

438
推荐指数
5
解决办法
24万
查看次数

为Java泛型键入别名

我在Java中有一套相当复杂的泛型类.例如,我有一个界面

interface Doable<X,Y> {
  X doIt(Y y);
}
Run Code Online (Sandbox Code Playgroud)

和实施

class DoableImpl implements Doable<Foo<Bar<Baz,Qux>>,Foo<Bar<Zot,Qux>>> {
  Foo<Bar<Baz,Qux>> doIt(Foo<Bar<Zot,Qux>> fooBZQ) { ... }
}
Run Code Online (Sandbox Code Playgroud)

在实际实现中,Doable有不少方法Foo<Bar<Baz,Qux>>等等,一遍又一遍地出现.(信不信由你,通用类型比这更痛苦.我为这个例子简化了它们.)

我想简化这些,以节省自己的打字和缓解眼睛的压力.我想是有一个简单的"类型的别名"对Foo<Bar<Baz,Qux>>等的,说FooBBQFooBZQ.

我目前的想法是定义包装类:

class FooBBQ { 
  public static FooBBQ valueOf(Foo<Bar<Baz,Qux>> fooBBQ) { 
    return new FooBBQ(fooBBQ); 
  }
  private Foo<Bar<Baz,Qux>> fooBBQ;
  private FooBBQ(Foo<Bar<Baz,Qux>> fooBBQ) { 
    this.fooBBQ = fooBBQ; 
  }
  public Foo<Bar<Baz,Qux>> toGeneric() {
    return fooBBQ;
  }
}

class FooBZQ { /* pretty much the same... */ }

class DoableImpl implements Doable<FooBBQ,FooBZQ> …
Run Code Online (Sandbox Code Playgroud)

java generics casting

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

如何将函数和参数放入python队列?

我有一个包含2个线程的python程序(让我们将它们命名为'source'和'destination').源线程有时会使用一些参数将消息发布到目标线程.比目标线程选择一条消息,它必须使用保存在消息中的历史记录调用相应的函数.

这个任务可以通过多种方式解决.容易的是在目标线程的消息选择周期中调整一个大的'if ... if..if'并根据收到的消息类型和保存的参数调用函数.但这将导致巨大的代码(或大查找表),并且添加新的消息/处理函数将演变为在消息选择周期中编写代码的额外步骤.

由于python将函数视为第一类对象并具有元组,因此我想在消息中放置函数和参数,因此,目标线程选择一条消息,它只是调用保存在消息中的函数,而不知道它是什么函数.

我可以为具有指定数量的参数的函数编写代码:

from Queue import *
from thread import *
from time import *

q = Queue()

def HandleMsg( arg1, arg2 ) :
  print arg1, arg2

def HandleAnotherMsg( arg1, arg2, arg3 ) :
  print arg1, arg2, arg3

def DestinationThread( a ) :
  while True :
    (f, a, b) = q.get()
    f( a, b )

start_new_thread( DestinationThread, ( 0, ) )
print "start"
sleep( 1 )
q.put( (HandleMsg, 1, 2) )
sleep( 1 )
print "stop"
Run Code Online (Sandbox Code Playgroud)

问题是:如何修改代码,以便我可以把()一个函数与队列中的任意数量的参数放在一起?例如HandleAnotherMsg()?使用q.put((HandleAnotherMsg,1,2,3))会出现编译错误:(

python multithreading

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

部分研究框架/库的有效策略

我记得研究新框架的旧有效方法.MFC说,这总是阅读这本主题好书的最佳方式.当我试图跳过大量材料以加快编码时,后来发现它会更快地首先阅读整本书.没有很好的方法来研究小部分的框架.或者至少我当时没有看到它们.

过去几年发生了许多新事物:改进了谷歌的搜索结果,编程博客,更多参与互联网讨论的人,以及许多开源框架.

现在,当我们编写软件时,我们通常依赖于第三方(通常是开源)框架/库.很多时候我们只需要知道他们使用它们的少量功能.它只是找到使用库的一小部分而没有不必要的悲观化的最简单方法.

您如何尽可能少地研究框架并仍然有效地使用它?

例如,假设您需要使用Lucene索引一组文档.您需要突出显示搜索片段.如果你深入研究Lucene,你不关心词干分析器,将索引存储在一个文件中与多个文件,模糊查询以及许多其他会占据你大脑的东西.

那么你的策略,方法和技巧是什么来节省你的时间?

我会列举我会做什么,虽然我觉得我的过程可以改进.

  • 搜索"lucene tutorial","lucene highlight example"等.尝试根据发布日期,评论的数量和基调来估计非官方文章(博客文章)的信任评分.如果没有确定的答案 - 在目标上收集新的搜索关键字和链接.
  • 在官方网站上搜索真正快速的教程/新手指南
  • 估计javadocs对新手的价值.(阅读Lucene精彩包装摘要)
  • 搜索库中附带的简单示例,与您需要的内容相关.(学习"src/demo/org/apache/lucene/demo")
  • 在Lucene邮件列表中询问"简单的Lucene搜索突出显示示例".如果你问一个愚蠢的问题,你就无法得到答案,甚至得不到好名声.通常你不知道你的问题是否是愚蠢的,因为你还没有深入研究这个框架.
  • 在Stackoverflow或其他QA服务上询问它"你能给我一个在Lucene中突出显示搜索关键字的工作示例".然而,这个问题非常具体,无法得到答案或得分不好.
  • 如果它是开源的,请估计从框架代码中获得答案的容易程度.

你的学习/搜索路线是什么?如果可能,请按优先顺序写下它们.

search frameworks

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

在运行时ANSI C++中区分指针和引用

如何在运行时区分指针和引用?例如,如果我想释放数据类型的指针而不知道它是否是指针,我该怎么做?是否有任何方法可以判断是否已在堆栈上或通过malloc()分配变量?

void destInt(int* var)
{
   free(var);
}


int num = 3;
int &numRef = num;
int* numPtr = (int*)malloc(sizeof(int));
*numPtr = num;

destInt(&numRef); //Syntactically correct but generates invalid pointer()
destInt(numPtr); //Fine syntactically and logically
Run Code Online (Sandbox Code Playgroud)

c++ malloc stack pointers reference

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

如何将焦点带到jquery的窗口?

我试图使用jquery将焦点带到窗口.通过父页面上的按钮单击弹出窗口.我在子窗口中进行了一些ajax调用,因此数据正在更新.我的问题是,如果用户点击父窗口并隐藏其后面的子项,我想在有数据更新时将该子窗口恢复到最前端.

在$(document).ready中我连接了这些事件:

  $(window).blur(function(){
    WindowHasFocus =false;
}).focus(function(){
    WindowHasFocus =true;
});
Run Code Online (Sandbox Code Playgroud)

然后,如果数据更新,我调用此函数:

function FocusInput(){

 if(!WindowHasFocus){
    $(window).focus();
 }
}
Run Code Online (Sandbox Code Playgroud)

这在IE8中按预期工作,但在FireFox(以及所有其他浏览器)中,如果单击父窗口,Blur事件似乎会触发.关于如何实现这一点的任何建议/想法?

更新:

总facepalm时刻:在FireFox中:*工具*选项...*内容选项卡*"启用JavaScript"旁边的高级按钮*选中名为"提升或降低Windows"的框

javascript jquery

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

为什么我只能在Windows上使用Tie :: File打开2045个文件?

我有以下代码尝试将数组绑定到文件.除此之外,当我运行此代码时,它只创建2045个文件.这是什么问题?

#!/usr/bin/perl
use Tie::File;

for (my $i = 0; $i < 10000; $i++) {
    @files{$i} = ();
    tie @{$files{$i}}, 'Tie::File', "files//tiefile$i";
}
Run Code Online (Sandbox Code Playgroud)

编辑:我在Windows上

windows perl file

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

使用Jumi将$ _GET []参数传递给脚本?

我正在使用Jumi在Joomla上包含许多PHP脚本!文章,它很棒.我遇到的问题是将变量(以$ _GET参数的形式)传递给PHP脚本.

假设我有一个脚本"index.php",我希望传递$ _GET []参数"var",其值为"10".这通常可以通过指向:index.php?var = 10来完成.如何用Jumi"模仿"这个功能?我希望它会如此简单:

{jumi [directory/index.php] [var=10]}
Run Code Online (Sandbox Code Playgroud)

但是上面的语法不正确.

任何输入将不胜感激.

- 尼古拉斯

php joomla content-management-system

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

深入学习C#表达式树的最佳资源是什么?

当我第一次输入这个问题时,我这样做是为了找到重复的问题,确信有人必须已经问过这个问题.我的计划是遵循这些欺骗链接而不是发布此问题.但据我所知,这个问题以前没有被问过......它没有出现在"相关问题"列表中.

为了深入了解C#中的表达式树,你找到了哪些最好的资源(文章,书籍,博客文章等)? 我一直对他们的能力感到惊讶,现在我正处在我说的地方,"好吧,足够的惊喜.我现在想停下来获得这些东西的博士学位." 我正在寻找系统,有条理地涵盖功能的材料,然后详细介绍了如何使用它们.

注意:我不是在谈论lambda表达式.我在谈论Expression <T>以及随之而来的所有事情.

谢谢.

c# lambda expression-trees c#-3.0

53
推荐指数
3
解决办法
8512
查看次数

所有接口上的UDP广播

在具有有线和无线接口的Linux系统(例如192.168.1.x和192.168.2.x子网)上,我想发送通过所有可用接口发出的UDP广播(即通过有线和无线接口发送) ).

目前我发送到()到INADDR_BROADCAST,但似乎广播只通过其中一个接口发送(并不总是相同,后续广播可能使用其他接口).

有没有办法可以发送通过每个接口发出的UDP广播?

linux posix udp broadcast

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