小编Aft*_*ess的帖子

ArrayList.sort()vs PriorityQueue

我需要支持比读取更多的插入并保持数据排序.哪个会表现更好:

使用PriorityQueue提供比较器

要么

每次插入后使用ArrayList和调用.sort()

.sort()每次打电话都感觉不对,但我无法说清楚原因.

java sorting algorithm arraylist priority-queue

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

嘲笑 es6 类时,Jest 无法读取未定义的属性“实例”

尝试模拟 ES6 类,只是为了获得一个我可以监视的虚拟模拟。我的代码似乎非常严格地遵循文档,但是在调用.mock我的虚拟对象时出现此错误:

类型错误:无法读取未定义的属性“实例”

jest.mock('../../../adapters/Cache')
const Fizz = require('../Fizz')
const Cache = require('../../../adapters/Cache')

const fizz = new Fizz()

describe('CACHE', () => {
  it('should return a mock', () => {
    //This is the line that fails
    const mockCache = Cache.mock.instances[0]

    const mockRetrieveRecords = mockCache.retrieveRecords
    fizz.doStuff()
    expect(mockRetrieveRecords).toHaveBeenCalledTimes(1)
  })
})
Run Code Online (Sandbox Code Playgroud)

node.js jestjs

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

SQL - 根据行数限制返回的行数

这是我的数据:

item_ID | group_ID | count_of_items_in_group

2|ABC|3

5|ABC|3

9|ABC|3

29|DEF|3

3|DEF|3

4|DEF|3

200|XYZ|2

300|XYZ|2

600|GHI|1
Run Code Online (Sandbox Code Playgroud)

SQL Filddle: http ://sqlfiddle.com/#!2/dfe09/1

对于每个组,我想限制返回的item_ID的数量最多为2.我不关心返回哪两个.如果组少于2行,则只返回1行.

我不能为每个组写一个select top*2并且联合选择因为我有几百个组.

我不知道从哪里开始,非常感谢你的帮助.

使用MS SQL 2005

(表格布局与示例中的完全一样,它是基于多个查询的视图)

sql sql-server sql-server-2005

5
推荐指数
2
解决办法
2088
查看次数

MyBatis:如何返回列表地图?

我用谷歌搜索了这个,直到我脸色发青,找不到答案.如何配置MyBatis以返回列表地图?

HashMap<String, List<Foo>>
Run Code Online (Sandbox Code Playgroud)

例如,如果我有一个查询返回了所有客户的所有订单,我想让它返回一个包含客户ID键入的订单列表的Map.

编辑

我找到了一种方法来编写一个自定义的ResultHandler,但我宁愿让MyBatis为我做这件事,就像Hibernate对map或注释一样.

谢谢.

java mybatis

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

从计数循环到迭代器中的列表中删除元素

为什么这是合法的:

for(int i=0; i < arr.size(); i++) {
    arr.remove(i);
}
Run Code Online (Sandbox Code Playgroud)

但是使用迭代器或a的语法糖会导致ConcurrentModificationException:

for(String myString : arr) {
   arr.remove(myString);
}
Run Code Online (Sandbox Code Playgroud)
  • 在每个人开始跳上这个潮流之前告诉我使用iterator.remove();我问为什么不同的行为,而不是如何避免conc mod异常.谢谢.

java

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

没有注入Cucumber的Spring依赖项

<TL; DR>

问题: 我正在使用Cucumber-JVM和Spring进行集成测试.未创建测试步骤类中的自动装配类,并且该类为null.

</ TL; DR>

测试在本地工作但在构建服务器上失败,在尝试对自动装配的bean进行方法调用时使用空指针.

  • Java 1.8(本地和构建服务器)
  • Maven 3.3.9(本地和构建服务器)
  • 本地:Windows 8,构建服务器:Ubuntu(无法理解这有所不同)

我尝试了什么

问题类是带注释的@Component,我尝试删除@Component注释并在spring上下文中注册它 - 这没有任何效果.

将Spring日志级别设置为DEBUG几乎没有任何问题.对于使用Cucumber运行程序(@RunWith(Cucumber.class))的测试,我看到来自Spring的相对较少的日志.与使用SpringJunit4Runner的无关测试相比,几乎没有.

我写了一个测试,它使用SpringJunit4Runner而不是Cucumber跑步者并自动测试问题类,它运行良好; 这个类不是null.

POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.foo</groupId>
        <artifactId>matching-engine</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>core</artifactId>
    <name>core</name>
    <description>core matching engine</description>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.6.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.1.6.RELEASE</version>
            <scope>test</scope>
        </dependency> …
Run Code Online (Sandbox Code Playgroud)

java spring cucumber-jvm

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

如果我调用Thread.Join(),我是否需要volatile?

在Java中,如果只在加入突变它的线程后才访问它,则字段不需要是volatile; 联接在关系之前强制执行.

在c#怎么样?使用下面的代码,我保证在调用Join()之后会看到_value的更新值,或者我是否需要使_value变为volatile?

private String _value = "FOO"

public void Foo() 
{

   Thread myThread = new Thread(Bar);
   myThread.Start();
   myThread.Join();
   Console.WriteLine("[Main Thread] _val = "+ _value);

}

public void Bar()
{

   for(int i=0; i<1000; i++)
   {
         Console.WriteLine("Looping");

         if(i==75) 
         {
             _value="BAR";
         }
   }
   Console.WriteLine("DONE Looping");
}
Run Code Online (Sandbox Code Playgroud)

在我的代码片段中,是否会打印"BAR"?

c# concurrency volatile

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

Docker 在构建期间不会创建目录

Experimenting with Docker for the first time. Have these steps in my Dockerfile to create a directory, but when I run the container, the directory isn't there.

FROM ubuntu
MAINTAINER AfterWorkGuinness
RUN apt-get update
RUN apt-get install -y openssh-server
RUN mkdir /root/.ssh
RUN cd /root/.ssh
RUN ssh-keygen -t rsa -N "" -f id_rsa
VOLUME /root
EXPOSE 22
Run Code Online (Sandbox Code Playgroud)

Build image:

docker build -t ubuntu-ssh --no-cache .
Run Code Online (Sandbox Code Playgroud)

Testing the directory when I run the container:

docker run -it -v c:/users/awg/dev/tmp/home:/root ubuntu-ssh

root@39eec8fa51ad:/# …
Run Code Online (Sandbox Code Playgroud)

docker

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

使用Apache Camel请求回复和分散聚集

我正在尝试构建一条将执行以下操作的路线:

  1. 消费来自 jms:sender-in.我正在使用INOUT请求回复模式.该JMSReplyTo = sender-out
  2. 上述消息将被路由到多个接收者像jms:consumer1-in,jms:consumer2-injms:consumer3-in.所有人都在使用请求回复模式.在 JMSReplyTo每消费指定(在这种情况下,JMSReplyTo在这个顺序jms:consumer1-out, jms:consumer2-out, jms:consumer3-out
  3. 我需要将所有回复聚合在一起并将结果发送回去jms:sender-out.

我构建了一条类似于此的路线:

from("jms:sender-in")
    .to("jms:consumer1-in?exchangePattern=InOut&replyTo=queue:consumer1-out&preserveMessageQos=true")
    .to("jms:consumer2-in?exchangePattern=InOut&replyTo=queue:consumer2-out&preserveMessageQos=true")
    .to("jms:consumer3-in?exchangePattern=InOut&replyTo=queue:consumer3-out&preserveMessageQos=true");
Run Code Online (Sandbox Code Playgroud)

然后我将回复发送回某个队列以收集和聚合:

from("jms:consumer1-out?preserveMessageQos=true").to("jms:gather");
from("jms:consumer1-out?preserveMessageQos=true").to("jms:gather");
from("jms:consumer1-out?preserveMessageQos=true").to("jms:gather");
from("jms:gather").aggregate(header("TransactionID"), new GatherResponses()).completionSize(3).to("jms:sender-out");
Run Code Online (Sandbox Code Playgroud)

为了模仿我的消费者的行为,我添加了以下路线:

from("jms:consumer1-in").setBody(body());
from("jms:consumer2-in").setBody(body());
from("jms:consumer3-in").setBody(body());
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

  1. 我在回复中收到超时错误.如果我评论聚集部分,那么没有问题.即使回复返回队列然后转发到另一个队列,为什么会有超时.
  2. 如何存储原始JMSReplyTo值,以便Camel能够将聚合结果发送回发送方的回复队列.

我有一种感觉,我正在努力解决一些基本概念.任何帮助表示赞赏.谢谢.

apache-camel

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

Minikube 无法在 Mac 上启动

尝试在 mac 上启动 minikube。VirtualBox 正在提供虚拟化。

    $ minikube start
      minikube v1.1.0 on darwin (amd64)
      Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
      Configuring environment for Kubernetes v1.14.2 on Docker 18.09.6
    ?  Unable to load cached images: loading cached images: loading image /Users/paul/.minikube/cache/images/k8s.gcr.io/kube-proxy_v1.14.2: Docker load /tmp/kube-proxy_v1.14.2: command failed: docker load -i /tmp/kube-proxy_v1.14.2
    stdout: 
    stderr: open /var/lib/docker/image/overlay2/layerdb/tmp/write-set-542676317/diff: read-only file system
    : Process exited with status 1

      Failed to setup certs: pre-copy: command failed: sudo rm -f /var/lib/minikube/certs/ca.crt
    stdout: 
    stderr: rm: cannot remove '/var/lib/minikube/certs/ca.crt': Input/output …
Run Code Online (Sandbox Code Playgroud)

kubernetes minikube

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