小编Sve*_*ven的帖子

从顺序集合中获取随机元素

我谈到了一个API,它给了我java.util.Iterator一个集合.这意味着我可以迭代它,但我不能直接/随机访问元素.

现在我的问题:我想从这个集合中获得一个随机元素.我怎么做?我想我可以构建一个允许直接访问的新集合,但这不是一点消耗内存吗?我也可以迭代整个集合,并为每个元素"掷骰子",看看我是否应该采用该元素并退出迭代或继续.但后来我需要集合的大小,我无法从迭代器中获得.

提前致谢.

java iterator

10
推荐指数
2
解决办法
5570
查看次数

如何模拟我在测试中无法实例化的对象?

我在我的测试中使用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)

java easymock mocking

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

如何等待异步方法的回调返回值?

我知道等待异步方法是愚蠢的,应该使用回调.但是如果第三方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)

希望你在上面的代码中看到我的困境.我需要根据异步方法调用的结果返回一个对象.是否有可能实现这一目标?

javascript asynchronous google-chrome-extension

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

使用JOIN和多个条件的SQL查询

我在制定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.我希望所有任务都具备以下条件:任务从未计划过,或者任务已经过去,但没有未来的计划.

在上面的示例中,以下任务满足此条件:

  • 1 Foo
  • 4 Bassbar

有什么建议?提前致谢!

sql select join

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

如何为 Twitter 文章聚合器设计 MongoDB 架构

我是 MongoDB 的新手,作为练习,我正在构建一个从推文中提取链接的应用程序。这个想法是获取某个主题的推文最多的文章。我很难为这个应用程序设计架构。

  • 该应用程序收集推文并保存它们
  • 解析推文中的链接
  • 链接与附加信息(标题、摘录等)一起保存
  • 一条推文可以包含多个链接
  • 一个链接可以有很多推文

我如何能:

  • 保存这些集合,嵌入文档?
  • 获取按推文数量排序的前十个链接?
  • 获取特定日期推文最多的链接?
  • 获取推文的链接?
  • 获取十条最新推文?

我很想就此获得一些意见。

schema mongodb

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