小编Ben*_* B.的帖子

查找与Java Map中的最大值关联的密钥

获取地图中最大值关键字的最简单方法是什么?

我相信当您需要与最大值对应的键时,Collections.max(someMap)将返回最大键.

java hashmap

125
推荐指数
9
解决办法
19万
查看次数

Java中的Varargs到ArrayList问题

我不明白为什么以下不起作用:

public void doSomething(int... args){
  List<Integer> broken = new ArrayList<Integer>(Arrays.asList(args))
}
Run Code Online (Sandbox Code Playgroud)

我的理解是编译器将"int ... args"转换为数组,因此上面的代码应该可以工作.

而不是工作,我得到:

找不到符号符号:构造函数ArrayList(java.util.List <int[]>)location:class java.util.ArrayList <java.lang.Integer>

多奇怪.我没有在数组列表中添加数组,我将列表中的每个元素添加到arraylist中.这是怎么回事?

java generics variadic-functions

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

良好的GetHashCode()覆盖了关于订单的Foo对象列表

EnumerableObject : IEnumerable<Foo>

包裹一个 List<Foo>

如果EnumerableObject a.SequenceEquals( EnumerableObject b),那么他们是平等的.

因此,GetHashCode必须实施.问题是XORing列表中的每个元素将返回任何列表的相同哈希码,所有列表都包含所有且只有相同的元素,而不管顺序如何.就工作而言,这是好的,但会导致许多冲突,这将减慢检索速度等.

GetHashCode对于依赖于顺序的对象列表,什么是一种好的,快速的方法?

c# algorithm hashcode gethashcode

30
推荐指数
3
解决办法
2万
查看次数

一致迭代两个列表的最佳风格

这是我刚刚写的:

 public void mutate(){
    ListIterator<Double> git = genome.listIterator();
    Iterator<Double> mit = mutationStrategies.iterator();
    while (git.hasNext() && mit.hasNext()){
        git.set(alleleUpdate(git.next(), mit.next()));
    }

}
Run Code Online (Sandbox Code Playgroud)

这是最有效和最清晰的方式吗?所有必须知道的是,基因组列表根据某个函数设置其值,该函数采用其当前值和mutationStrategies的当前值.(如果你是进化的东西,这是一个进化策略算法).

java performance iterator coding-style list

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

Java中的扑克之手

有没有简单的方法来比较两个扑克手?我很天真地谈论这个,所以如果有人有这方面的经验,那可能会有所帮助.

java poker

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

LINQ Group非常慢

以下代码需要5分钟才能在100,000行上运行.这对我来说似乎很疯狂.我究竟做错了什么?

        var query =
            from foo in fooStuff.AsEnumerable()
            group foo by foo.Field<Int64>("FooID") into g
            select new
            {
                    FooID = g.Key,
                    FooTier = g.Min(foo => foo.Field<int>("Tier"))
            };
Run Code Online (Sandbox Code Playgroud)

注意:单声道.

c# linq mono

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

覆盖C#中具有许多属性的类的等于

我有许多数据类,它们具有超过25种不同值类型的属性(随着需求的变化,这可能在将来发生变化).我想覆盖equals,主要用于单元测试目的.

目前,我知道如何做到这一点的唯一方法是实际测试硬编码的每个属性的相等性.这看起来很糟糕有两个原因 - 首先,我将编写大量代码来测试25个属性的相等性 - 第二,如果其中一个类中的属性在稍后的时间点添加,则Equals方法将不会检查这很可能会被忽视并导致问题.

由于Equals通常会检查类的属性,因此应该有一种方法来动态比较要比较的类的属性,这可以确保对类的属性更改不会导致Equals的错误实现.有没有办法做到这一点?

c# equals

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

Mono中的WCF服务无法访问?

我已经在linux和os x上尝试了这个并且我遇到了同样的问题.这是具有最新稳定版Mono的MonoDevelop 2.6.在我的Mac上,即2.10.2.

这几天前曾经对我有用.我会将我的浏览器指向"http:// localhost:8000/number/test"并收到一条消息,上面写着"在命令行中输入svcutil http:// localhost:8000/number/test [somethingmore] "

现在我在浏览器中看到Linux和Mac上的消息是:

<Fault xmlns="http://schemas.microsoft.com/ws/2005/05/envelope/none">
Run Code Online (Sandbox Code Playgroud)

__CODE__ 由于内部错误,服务器无法处理请求.服务器可能能够返回异常详细信息(这取决于服务器设置).

这曾经有用,所以我不确定我是否遗漏了一些重要的东西,或者Mono或者什么东西出了问题.我希望你有个主意.这一切都非常直接来自MSDN教程(有一些更改).

(对于那些知道的人,我知道到目前为止这还不能保存状态,因为它尚未设置会话,当我收到此错误时,我正努力到达那里).

这是我的课程:

using System;
using System.ServiceModel;

namespace NumberService
  {
[ServiceContract]
public interface INumberService
{
    [OperationContract]
    void Add(int val);

    [OperationContract]
    void Subtract(int val);

    [OperationContract]
    int Result();
}
}

using System;

namespace NumberService
{
public class NumberService : INumberService
{
    private int val = 1;


    public NumberService ()
    {
        Console.WriteLine("NumberService created.");
    }

    public void Add(int val)
    {
        this.val += val;    
    }

    public void Subtract(int val)
    {
        this.val …
Run Code Online (Sandbox Code Playgroud)

c# mono wcf

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

在界面中实现Comparable

我只使用它的接口调用一个特定的类.问题是,类本身实现了Comparable,但因为我通过不同的接口引用该类,所以编译器不知道它实现了Comparable.我确信有一个简单的解决方案......但我现在想不到它.

java interface comparable

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

WCF 返回只有默认值的对象

我有一个CustObject具有DataContractDataMember属性的测试类。但是,当我将此返回给客户端时,所有值都是默认值。

服务端:

[DataContract]
public class CustObject
{
    [DataMember (IsRequired = true)]
    public int n1;
    [DataMember (IsRequired = true)]
    public int n2;

    [DataMember]
    public int val1 = 552;

    [DataMember]
    public int? val2 = 88;

    [DataMember]
    int val3 = 11;

    [DataMember]
    string val4 = "hello world";


    public CustObject()
    {
        n1 = 1;
        n2 = 2;
    }

    private int nprivate = 18;



}



    public class CalculatorService : ICalculator
{

    public CustObject Foo()
    {
        Console.WriteLine();
        CustObject test = …
Run Code Online (Sandbox Code Playgroud)

c# wcf

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

为什么实现通用接口反直觉?

interface Foo<T extends Number>{
}

class Bar<T extends Number> implements Foo<T>{

}
Run Code Online (Sandbox Code Playgroud)

为什么必须以这种方式编写类而不是:

class Bar<T extends Number> implements Foo<T extends Number>{
}
Run Code Online (Sandbox Code Playgroud)

当然第二种方式更清晰.

java generics interface

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

如何防止将值转换为JavaScript中的字符串?

    var str;
    var displayedNum;
    for (i in imgURLArray){
        str = "<li photonum="+i+">" + "<a>"+ (1+i) + "</a>" + "</li>";
        $("ul.selection-list").append(str);

}
Run Code Online (Sandbox Code Playgroud)

我需要在一个循环中执行此操作,但是发生的是它打印出“ 11”而不是“ 2”,因为它在加法之前会转换为字符串。

如果我尝试在字符串之外进行加法​​并将其存储在变量中,也会遇到同样的问题,它仍然会转换为字符串,而不是进行加法。

Number(1 + 1)仍会先转换为字符串,然后再将其转换为数字,因此结果为11。

javascript

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

使用块查找匹配条件的值

对我来说这很有道理:

triple = dice.collect {|value| if (dice.count(value) >= 3)} ---> Syntax error
Run Code Online (Sandbox Code Playgroud)

要么

triple = dice.collect {|value| dice.count(value) >= 3} ----> Array of true/false
Run Code Online (Sandbox Code Playgroud)

我想要数字的值,而不是dice.count()的真实或虚假.我知道必须有一个简单的方法来做到这一点.

ruby block

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