小编Cra*_*lin的帖子

IntelliJ中可能的东西在Eclipse中是不可能的?

我听过那些已经转向任何一方并且发誓这些人的人.

作为一个巨大的Eclipse粉丝,但没有时间尝试使用IntelliJ,我有兴趣听取IntelliJ用户的说法,他们是"前Eclipsians",你可以用IntelliJ做一些你不能用Eclipse做的具体事情.

注意:这不是一个主观问题,也不意味着变成IDE圣战.请低估任何flamebait答案.

java eclipse ide intellij-idea

365
推荐指数
20
解决办法
23万
查看次数

哪种并行排序算法具有最佳的平均案例性能?

排序在串行情况下需要O(n log n).如果我们有O(n)处理器,我们希望线性加速.存在O(log n)并行算法,但它们具有非常高的常数.它们也不适用于没有O(n)处理器附近的商品硬件.对于p个处理器,合理的算法应该花费O(n/p log n)时间.

在串行的情况下,快速排序平均具有最佳的运行时复杂性.并行快速排序算法易于实现(请参见此处此处).但是它表现不佳,因为第一步是将整个集合划分到单个核心上.我已经找到了许多并行排序算法的信息,但到目前为止我还没有看到任何指向明显赢家的信息.

我希望在运行8到32个内核的JVM语言中对100万到1亿个元素的列表进行排序.

sorting algorithm concurrency

127
推荐指数
2
解决办法
6万
查看次数

最佳实践:在setUp()或声明中初始化JUnit类字段?

我应该在这样的声明中初始化类字段吗?

public class SomeTest extends TestCase
{
    private final List list = new ArrayList();

    public void testPopulateList()
    {
        // Add stuff to the list
        // Assert the list contains what I expect
    }
}
Run Code Online (Sandbox Code Playgroud)

或者像setUp()这样?

public class SomeTest extends TestCase
{
    private List list;

    @Override
    protected void setUp() throws Exception
    {
        super.setUp();
        this.list = new ArrayList();
    }

    public void testPopulateList()
    {
        // Add stuff to the list
        // Assert the list contains what I expect
    }
}
Run Code Online (Sandbox Code Playgroud)

我倾向于使用第一种形式,因为它更简洁,并允许我使用最终字段.如果我不需要使用setUp()方法进行设置,我是否还应该使用它,为什么? …

java junit

113
推荐指数
7
解决办法
14万
查看次数

Lambda表达式将数组/ String列表转换为数组/整数列表

由于Java 8带有强大的lambda表达式,

我想写一个函数将一个List /数组的字符串转换为数组/整数列表,浮点数,双精度等.

在普通的Java中,它会如此简单

for(String str : strList){
   intList.add(Integer.valueOf(str));
}
Run Code Online (Sandbox Code Playgroud)

但是如果将一个字符串数组转换为整数数组,我如何用lambda实现相同的效果.

java arrays collections lambda java-8

107
推荐指数
5
解决办法
16万
查看次数

Eclipse中可能的事情在IntelliJ中是不可能的?

我听过那些发誓的人.两者都是功能齐全,出色的IDE.但每个人的优势略有不同.这并不意味着变成一场神圣的IDE战争.请低估任何flamebait答案.谢谢.

这就是这个问题的类比.

java eclipse ide intellij-idea

58
推荐指数
9
解决办法
2万
查看次数

如何使用列表作为值迭代LinkedHashMap

我有以下LinkedHashMap声明.

LinkedHashMap<String, ArrayList<String>> test1
Run Code Online (Sandbox Code Playgroud)

我的观点是如何迭代这个哈希映射.我想这样做,为每个键获取相应的arraylist并逐个打印arraylist的值.

我试过这个,但只得到返回字符串,

String key = iterator.next().toString();  
ArrayList<String> value = (ArrayList<String> )test1.get(key)
Run Code Online (Sandbox Code Playgroud)

java collections linkedhashmap

51
推荐指数
5
解决办法
13万
查看次数

在Scala中执行块n次有一个简短的语法吗?

当我想重复执行n次时,我发现自己编写了这样的代码:

for (i <- 1 to n) { doSomething() }
Run Code Online (Sandbox Code Playgroud)

我正在寻找这样一个更短的语法:

n.times(doSomething())
Run Code Online (Sandbox Code Playgroud)

Scala中是否存在类似的内容?

编辑

我想过使用Range的foreach()方法,但是块需要采用它从未使用过的参数.

(1 to n).foreach(ignored => doSomething())
Run Code Online (Sandbox Code Playgroud)

scala

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

为什么捕获异常非纯,但抛出异常是纯粹的?

在Haskell中,您可以从纯函数代码中抛出异常,但是您只能捕获IO代码.

  • 为什么?
  • 你可以在其他情况下或仅在IO monad中捕获吗?
  • 其他纯功能语言如何处理它?

haskell functional-programming exception-handling purely-functional

37
推荐指数
2
解决办法
3526
查看次数

为什么这个通用java代码不会编译?

在这个简化的例子中,我有一个泛型类,以及一个返回Map而不管类型参数的方法.当我没有在包含类上指定类型时,为什么编译器会清除地图上的类型?

import java.util.Map;

public class MyClass<T>
{
    public Map<String, String> getMap()
    {   
        return null;
    }

    public void test()
    {   
        MyClass<Object> success = new MyClass<Object>();
        String s = success.getMap().get("");

        MyClass unchecked = new MyClass();
        Map<String, String> map = unchecked.getMap();  // Unchecked warning, why?
        String s2 = map.get("");

        MyClass fail = new MyClass();
        String s3 = fail.getMap().get("");  // Compiler error, why?
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到这个编译错误.

MyClass.java:20: incompatible types
found   : java.lang.Object
required: java.lang.String
                String s3 = fail.getMap().get("");  // Compiler error
Run Code Online (Sandbox Code Playgroud)

java generics

33
推荐指数
2
解决办法
2216
查看次数

从换行中阻止日食?

有没有办法让eclipse停止擦除现有的换行符?如果我有这样的方法签名,我无法弄清楚如何让eclipse不管它:

void foo(
    int arg1,
    int arg2,
    int arg3,
    int arg4)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

使用各种设置,它会将参数折叠为一行,或者将它们包裹在某个边缘,如下所示:

void foo(
    int arg1, int arg2,
    int arg3, int arg4)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

通过"包裹所有元素,新行中的每个元素",它确实保留了这个空白,但它总是会换行,这不是我想要的.我喜欢eclipse为缩进和大括号等应用格式,只是没有删除(或插入)任何换行符.

eclipse eclipse-formatter

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