小编Mun*_*uno的帖子

HashMap为什么以及如何拥有自己的hashCode()内部实现,称为hash()?

根据这篇博客文章,HashMap 在已经检索到的哈希码上重新调用它自己的hashCode()(被调用的hash())实现.

如果key不为null,那么它将调用key对象的hashfunction,参见上面方法中的第4行,即key.hashCode(),所以在key.hashCode()返回hashValue之后,第4行看起来像

int hash = hash(hashValue)

现在,它将返回的hashValue应用到自己的散列函数中.

我们可能想知道为什么我们使用hash(hashValue)再次计算hashvalue.答案是,它防御质量差的哈希>函数.

HashMap能否准确地重新分配哈希码?HashMap可以存储对象,但是它无权访问将hashCode分配给其对象的逻辑.例如,hash()无法集成以下hashCode()实现背后的逻辑:

public class Employee {
protected long employeeId;
protected String firstName;
protected String lastName;

public int hashCode(){
    return (int) employeeId;
}

}
Run Code Online (Sandbox Code Playgroud)

java hashmap hashcode

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

使用 Python 实现神经网络的成本函数(第 5 周 Coursera)

基于 Coursera 机器学习课程,我正在尝试在 python 中实现神经网络的成本函数。有一个与此类似的问题- 有一个可接受的答案 - 但该答案中的代码是用八度写的。不要偷懒,我已经尝试将答案的相关概念适应我的案例,据我所知,我正在正确实现该功能。然而,我输出的成本与预期成本不同,所以我做错了。

这是一个可重现的小示例:

以下链接指向一个.npz可以加载的文件(如下所示)以获取相关数据。"arrays.npz"如果您使用它,请重命名文件。

http://www.filedropper.com/arrays_1

if __name__ == "__main__":

with np.load("arrays.npz") as data:

    thrLayer = data['thrLayer'] # The final layer post activation; you 
    # can derive this final layer, if verification needed, using weights below

    thetaO = data['thetaO'] # The weight array between layers 1 and 2
    thetaT = data['thetaT'] # The weight array between layers 2 and 3

    Ynew = data['Ynew'] # The output array with a …
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning

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

`ValueError:太多值无法通过`scipy.stats.linregress`解包(预期为4)

我知道ValueError: too many values to unpack (expected 4)当将更多变量设置为值而不是函数返回时,会出现此错误消息()。

scipy.stats.linregress根据scipy文档(http://docs.scipy.org/doc/scipy/reference/generation/scipy.stats.linregress.html)返回5个值。

这是一个简短的,可复制的示例,它是对的工作呼叫,然后是失败的呼叫linregress

有什么可以解释差异的原因,为什么第二个没有得到很好的称呼呢?

from scipy import stats
import numpy as np

if __name__ == '__main__':
    x = np.random.random(10)
    y = np.random.random(10)
    print(x,y)
    slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)


'''
Code above works
Code below fails
'''

    X = np.asarray([[-15.93675813],
 [-29.15297922],
 [ 36.18954863],
 [ 37.49218733],
 [-48.05882945],
 [ -8.94145794],
 [ 15.30779289],
 [-34.70626581],
 [  1.38915437],
 [-44.38375985],
 [  7.01350208],
 [ 22.76274892]])

    Y = np.asarray( [[  2.13431051],
 [  1.17325668], …
Run Code Online (Sandbox Code Playgroud)

python scipy linear-regression

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

toString处的空指针异常错误

我的toString方法中出现空指针异常错误.我不知道为什么.错误可以通过多种方式发生.最常见的是,声明了对象的引用,但对象本身仍未创建.我已声明并创建(初始化正确的单词?)Mycircle circle1 = new Mycircle ();Mypoint center = new Mypoint ();

当我调用我的getter方法时,我怀疑我没有初始化任何字段,但事实并非如此.setter方法干净利落 - 我已成功输入值.这是否意味着我的getter方法可以访问某些非null值.

import java.util.Scanner;

public class MyCircle {

    private Mypoint center;
    private double radius;

    Scanner input = new Scanner (System.in);

    public MyCircle() {   
        radius = 0.0;
        Mypoint center = new Mypoint ();
        System.out.println("Enter coordinates here");
        center.setCoordinateX(input.nextDouble());
        center.setCoordinateY(input.nextDouble());
    }


    public String toString(MyCircle object) { 
        return "Circle @ " + "(" + object.center.getCoordinateX() + "," + 
          object.center.getCoordinateY() + ")" + ". Its radius is " + 
          object.radius; …
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception

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

为什么addAll()不支持将集合的副本添加到集合中?

在一个方法中,我打两个电话.第一个调用构造并从另一个方法返回一个hashset.第二个调用将此新构造的集合添加到现有集合,作为参数传递给此方法.

public static void someMethod(java.util.HashSet<Coordinate> invalidPositions)
{
    java.util.HashSet<Coordinate> newSet = SomeClass.getInvalidPositions(x, y);
    invalidPositions.addAll(newSet);
}
Run Code Online (Sandbox Code Playgroud)

通常,传入的集合(预先存在的集合)将添加另一个集合,其内容与其自身相同!那是,setOne.equals(setTwo) == true

然而,JavaDocs没有添加其他集合,而是说addAll():

public boolean addAll(Collection c)

将指定集合中的所有元素添加到此集合中(可选操作).如果在操作正在进行时修改了指定的集合,则此操作的行为是不确定的.(这意味着如果指定的集合是此集合,则此调用的行为是未定义的,并且此集合是非空的.)

我理解正确吗?如果两组相等,java将不支持另一组的添加?如果这是真的,有没有理由以这种方式设计语言?

java collections set

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

指定以最顶层目录开头的文件路径

我正在打印以下行:

Files.exists(Paths.get("card/1.png"),java.nio.file.LinkOption.NOFOLLOW_LINKS);

使用Paths.get(...),我想检索我的根目录开始的文件夹的路径,而不是在我当前的工作目录.我依稀记得,但现在不记得了,一些表达式开始在根文件检索.

表达式类似于~/我可以写的Paths.get(~/A/B);

如果不存在这样的表达式,那么在用户的最顶层文件夹中开始检索的最佳替代方法是什么?

java string file

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

为什么调用`str(someList)`有时会创建一个空格的"数组"?

playerList包含两个Player对象(str分别调用属性"a""b"),以及Player实现__str____repr__.当我连接str(playerList)到另一个字符串时,我希望该字符串可以通过某种形式附加"[a, b]".相反,结果字符串附加"[ , ]".我犯了什么错误给出了这个结果?

这是我写的

prompt = "And then choose the opponent you would like to attack from " + str(playerList)

def __str__ (self):
    return self.name

def __repr__ (self):
    return str()
Run Code Online (Sandbox Code Playgroud)

我在stdout上得到了什么:

"And then choose the opponent you would like to attack from [, ]"
Run Code Online (Sandbox Code Playgroud)

我想要的是:

"And then choose the opponent you would like to attack from [a,b]"
Run Code Online (Sandbox Code Playgroud)

python string list concatenation

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