我谈到了一个API,它给了我java.util.Iterator一个集合.这意味着我可以迭代它,但我不能直接/随机访问元素.
现在我的问题:我想从这个集合中获得一个随机元素.我怎么做?我想我可以构建一个允许直接访问的新集合,但这不是一点消耗内存吗?我也可以迭代整个集合,并为每个元素"掷骰子",看看我是否应该采用该元素并退出迭代或继续.但后来我需要集合的大小,我无法从迭代器中获得.
提前致谢.
我在我的测试中使用EasyMock来模拟对象.但是,我如何模拟在我的代码中的其他位置创建的对象?查看以下psudo代码.我想模拟WebService#getPersonById,我该怎么做?
public class Person {
public Person find(int id) {
WebService ws = new WebService();
return ws.getPersonById(id);
}
}
public class PersonTest {
testFind() {
// How do I mock WebService#getPersonById here?
}
}
Run Code Online (Sandbox Code Playgroud) 我知道等待异步方法是愚蠢的,应该使用回调.但是如果第三方API强迫你同步呢?
我正在开发Chrome扩展程序,以防止用户访问已在另一个标签页中打开的网站.我基本上需要根据打开标签中的网址取消请求.我想这样使用chrome.webRequest.onBeforeRequest:
function onBeforeRequest(details) {
var websiteAlreadyOpenInOtherTab;
// Here i want to set `websiteAlreadyOpenInOtherTab` by using the `chrome.tabs`
// API. It's asynchronous though and that's my problem. I cant return a value
// from an asynchronous method call.
if (websiteAlreadyOpenInOtherTab) {
return { cancel: true };
}
}
chrome.webRequest.onBeforeRequest.addListener(
onBeforeRequest,
{ urls: ['<all_urls>'], types: ['main_frame'] },
['blocking']);
Run Code Online (Sandbox Code Playgroud)
希望你在上面的代码中看到我的困境.我需要根据异步方法调用的结果返回一个对象.是否有可能实现这一目标?
我在制定SQL查询时遇到了麻烦.我执行以下操作:
SELECT *
FROM tasks
LEFT JOIN plans
ON plans.task_id = tasks.id
Run Code Online (Sandbox Code Playgroud)
并获得此结果集:
task.id task.description plan.id plan.task_id plan.date
-------|-----------------|-------|------------|------------
1 Foo 1 1 1998-01-01
2 Foobar 2 2 2012-02-25
2 Foobar 3 2 2012-12-12
3 Foobass 4 3 2012-12-24
4 Bassbar
... and lots of more records
Run Code Online (Sandbox Code Playgroud)
今天是2012-08-03.我希望所有任务都具备以下条件:任务从未计划过,或者任务已经过去,但没有未来的计划.
在上面的示例中,以下任务满足此条件:
有什么建议?提前致谢!
我是 MongoDB 的新手,作为练习,我正在构建一个从推文中提取链接的应用程序。这个想法是获取某个主题的推文最多的文章。我很难为这个应用程序设计架构。
我如何能:
我很想就此获得一些意见。