小编The*_*Roy的帖子

HashSet的迭代顺序

如果每个对象添加到java.util.HashSet中以确定性的方式实现的Object.Equals()和是Object.hashCode(),是迭代顺序在HashSet的保证用于每加入相同组元素是相同的,而不管的他们被添加的顺序?

奖金问题:如果插入顺序相同怎么办?

(假设Sun JDK6具有相同的HashSet初始化.)

编辑:我原来的问题不明确.它不是关于HashSet的一般契约,而是Sun在JDK6中对HashSet的实现提供了关于确定性的保证.它本质上是非确定性的吗?什么影响其迭代器使用的顺序?

java algorithm collections hashset

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

使用语言环境设置将西班牙语日期转换为python pandas datetime对象

我有两个问题:

  1. 如何使用pandas将西班牙语日期时间'previous122010'转换为2010-08-12 .strptime中使用的格式是否正确?

我尝试过以下方法:

import locale
locale.setlocale(locale.LC_ALL, 'es_ES.utf8')

from datetime import datetime as dt

df['date'] = dt.strptime(df['date'], '%b%d%Y')
df['date'] = df['date'].strftime('%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

Error: unsupported locale setting
Run Code Online (Sandbox Code Playgroud)
  1. 如何使用pandas将此'20100812'转换为日期时间.

python datetime pandas

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

有没有比使用 CountDownLatch 更好的方法来等待两个线程完成它们的任务?

我的要求是在启动依赖作业之前等待两个线程完成执行。

为了做到这一点,我可以创建 aCountDownLatch和 aWaiter Thread来等待CountDownLatch变为零。一个限制是我不能使用主线程来等待两个线程完成。主线程继续执行其他任务。

这东西确实有效。但是,我觉得这比实体设计更能解决问题。

我的问题如下:

  1. 当前方法有哪些明显缺陷?例如杂散信号
  2. 你会推荐什么设计?

我目前的代码:

class Waiter implements Runnable {
    private CountDownLatch latch; 

    Waiter (CountDownLatch latch){
        this.latch = latch;
    }

    @Override
    public void run() {
        System.out.println("Waiter Started running..." + latch.getCount());

        try {
            latch.await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("Waiter ready to trigger Next Job!");
    }
}

class Processor implements Runnable {
    private CountDownLatch latch; 

    Processor (CountDownLatch latch){
        this.latch = latch;
    }

    @Override
    public void run() {
        try …
Run Code Online (Sandbox Code Playgroud)

java multithreading locking

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

git merge 与 git rebase 的合并冲突场景

我想确保我正确地看待这个。

当我执行导致冲突的 git merge 时,我看到存在冲突的文件为:

<<<<<<<<<HEAD
my local changes first
=============
The remote github changes here.
>>>>>>>>>>
Run Code Online (Sandbox Code Playgroud)

而当我由于 git rebase 而遇到冲突时,我看到了相反的情况:

<<<<<<<<<
The remote github changes here.
=============
my local changes first
>>>>>>>>>>
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

git git-merge git-merge-conflict

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

如果需要更低延迟的代码,我们为什么要选择微服务呢?

在整体中,我们只需要进行函数调用或方法调用,而不是进程间通信.熟悉微服务架构的人是否有助于理解如何使用微服务开发低延迟应用程序的原因?

我认为Chronicle框架声称您可以开发基于微服务的产品并使用编年史队列进行通信而不会产生网络跳跃延迟.

java architecture low-latency microservices

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

switch中的所有情况都会执行,而只有一个应该执行

我正在尝试创建一个非常简单的游戏,其中不同类型的几个玩家试图猜测范围内的数字.我做了一个函数来初始化一个玩家阵列,我用switch-case来做.

出于某种原因,如果我输入一个数字,它会覆盖它之后的所有情况,即使数组中没有足够的单元格.例如,当输入2时,类型为HUMAN的值,它也会创建3和4的情况,并创建类型为COMPUTER和GUMBLER的玩家.

这是代码:

    String name;
    int count = 0;
    System.out.println("How many players will participate?");
    players = new Player[reader.nextByte()];
    for (Player player: players)
    {    
        count++;
        System.out.print("\n1)Name of the player: ");
        name = reader.next();
        System.out.println("What will be its type? WRITE A NUMBER\n1- Monley\n2-Human\n3-Gumbler\n4-Computer");
        switch (reader.nextInt())
        {
            case 1:
                player = new Monkey (name, MAXIMUM, MINIMUM);
                System.out.println("A moneky was created");
            case 2:
                player = new Human (name);
                System.out.println("A human was created");
            case 3:
                player = new Gumbler (name, MAXIMUM, MINIMUM);
                System.out.println("A gummbler was …
Run Code Online (Sandbox Code Playgroud)

java arrays switch-statement

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