我正在寻找一个具有键值关联的java类,但不使用哈希.这是我目前正在做的事情:
Hashtable.Hashtable.entrySet().Map.Entry迭代器.Module根据值创建类型(自定义类)的对象.这个问题是我无法控制返回值的顺序,所以我不能以给定的顺序显示值(不对代码进行硬编码).
我会使用一个ArrayList或Vector为此,但稍后在代码中我需要抓取Module给定Key 的对象,我无法使用ArrayList或Vector.
有没有人知道一个可以执行此操作的免费/开源Java类,或者Hashtable根据添加时间来获取值的方法?
谢谢!
我在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>>等的,说FooBBQ和FooBZQ.
我目前的想法是定义包装类:
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) 我有一个包含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))会出现编译错误:(
我记得研究新框架的旧有效方法.MFC说,这总是阅读这本主题好书的最佳方式.当我试图跳过大量材料以加快编码时,后来发现它会更快地首先阅读整本书.没有很好的方法来研究小部分的框架.或者至少我当时没有看到它们.
过去几年发生了许多新事物:改进了谷歌的搜索结果,编程博客,更多参与互联网讨论的人,以及许多开源框架.
现在,当我们编写软件时,我们通常依赖于第三方(通常是开源)框架/库.很多时候我们只需要知道他们使用它们的少量功能.它只是找到使用库的一小部分而没有不必要的悲观化的最简单方法.
您如何尽可能少地研究框架并仍然有效地使用它?
例如,假设您需要使用Lucene索引一组文档.您需要突出显示搜索片段.如果你深入研究Lucene,你不关心词干分析器,将索引存储在一个文件中与多个文件,模糊查询以及许多其他会占据你大脑的东西.
那么你的策略,方法和技巧是什么来节省你的时间?
我会列举我会做什么,虽然我觉得我的过程可以改进.
你的学习/搜索路线是什么?如果可能,请按优先顺序写下它们.
如何在运行时区分指针和引用?例如,如果我想释放数据类型的指针而不知道它是否是指针,我该怎么做?是否有任何方法可以判断是否已在堆栈上或通过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) 我试图使用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"的框
我有以下代码尝试将数组绑定到文件.除此之外,当我运行此代码时,它只创建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上
我正在使用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)
但是上面的语法不正确.
任何输入将不胜感激.
- 尼古拉斯
当我第一次输入这个问题时,我这样做是为了找到重复的问题,确信有人必须已经问过这个问题.我的计划是遵循这些欺骗链接而不是发布此问题.但据我所知,这个问题以前没有被问过......它没有出现在"相关问题"列表中.
为了深入了解C#中的表达式树,你找到了哪些最好的资源(文章,书籍,博客文章等)? 我一直对他们的能力感到惊讶,现在我正处在我说的地方,"好吧,足够的惊喜.我现在想停下来获得这些东西的博士学位." 我正在寻找系统,有条理地涵盖功能的材料,然后详细介绍了如何使用它们.
注意:我不是在谈论lambda表达式.我在谈论Expression <T>以及随之而来的所有事情.
谢谢.
在具有有线和无线接口的Linux系统(例如192.168.1.x和192.168.2.x子网)上,我想发送通过所有可用接口发出的UDP广播(即通过有线和无线接口发送) ).
目前我发送到()到INADDR_BROADCAST,但似乎广播只通过其中一个接口发送(并不总是相同,后续广播可能使用其他接口).
有没有办法可以发送通过每个接口发出的UDP广播?