标签: java-8

数组无法解决?这是构建路径问题吗?

当我输入Arrays.sort(arr)Eclipse时,我收到此错误Arrays cannot be resolved,当我左键单击红色带下划线的Arrays单词时,我没有import java.util.Arrays按预期方式获得.我安装了JRE和JDK 1.8.0_20,并相应地配置了我的项目构建路径.可能是什么问题?

java eclipse arrays java-8

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

Java 8流映射重用分配的变量

我知道标题可能有点令人困惑,但我无法想出更好的标题,所以让我解释一下我的意思......

我有这段代码:

int spacing = Integer.MAX_VALUE;

for (Edge edge : edges) {
    if (!union.connected(edge.getStart(), edge.getEnd())) {
        spacing = Math.min(spacing, edge.getWeight());
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将此代码转换为java 8代码?

当然,第一步是过滤这很简单,但后来它变得很诡异,因为我必须spacing在Stream :: map方法中重用计算变量,我不知道这是否可能.

java mapping filter java-8 java-stream

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

EclEmma,Java8和Lambda - 没有关于lambda表达式的报道

我在Eclipse Luna下有一个Java项目,使用EclEmma 2.3.1.201405111647(最新版),它使用Jacoco 0.7.1,它支持Java 8,如更改日志中所述:

"2.3.1版(2014/05/11)

Fixed ASM 5.0.1 dependency conflicts with new ASM bundles in Eclipse 4.4 (GitHub #83).
Upgrade to JaCoCo 0.7.1 for full Java 8 support.
Run Code Online (Sandbox Code Playgroud)

我现在有以下toString:

  @Override
  public String toString() {
    // [BLOCK0]
    if (0 == value) {
      return "0B";
    }
    // [BLOCK1]
    final MutableLong val = new MutableLong(value);
    final StringBuilder sb = new StringBuilder();
    // [BLOCK2]
    Arrays.asList(TERA_BYTES, GIGA_BYTES, MEGA_BYTES, KILO_BYTES, BYTES).forEach(unit -> {
      // [BLOCK3]
      long divider = unit.toBytes(1);
      long n = val.longValue() …
Run Code Online (Sandbox Code Playgroud)

java-8 jacoco eclemma

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

c:\ Program Files\Java\glassfish 4\glassfish\domains\domain1不可写

我正在使用jdk 1.8.0_20和Windows 8.1操作系统开发eclipse kepler.我选择了GlassFish的4位置并单击下一步,这让我C:\ Program Files文件\的Java\GlassFish的4\GlassFish的\域\ domain1不写

我尝试在stackoverflow中给出的答案,但没有得到我认为即给出Linux的解决方案.我尝试了几乎所有网站上给出的所有东西,但我没有得到解决方案.Plz有人回答我.谢谢你提前

java windows glassfish java-8 eclipse-kepler

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

Java 8方法引用与"实际"函数指针有何不同?

有人告诉我tbat Java 8方法引用没有'true'函数指针那么强大.

怎么回事?方法引用与函数指针有何不同?

java lambda closures function-pointers java-8

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

与串行相比,Java 8 Stream并行性能和CPU资源消耗似乎非常差

在尝试JDK 8 Streaming功能时,我决定尝试并行/串行流性能测试.我尝试使用在单位正方形上投掷随机飞镖来解决pi的值,并检查单位圆内有多少次着陆.我找到了apache-spark的例子.

这是代码.

    package org.sample;

    import java.util.concurrent.TimeUnit;
    import java.util.stream.IntStream;

    import org.openjdk.jmh.annotations.Benchmark;
    import org.openjdk.jmh.annotations.BenchmarkMode;
    import org.openjdk.jmh.annotations.Fork;
    import org.openjdk.jmh.annotations.Measurement;
    import org.openjdk.jmh.annotations.Mode;
    import org.openjdk.jmh.annotations.OutputTimeUnit;
    import org.openjdk.jmh.annotations.Param;
    import org.openjdk.jmh.annotations.Scope;
    import org.openjdk.jmh.annotations.State;
    import org.openjdk.jmh.annotations.Warmup;

    @BenchmarkMode(Mode.AverageTime)
    @OutputTimeUnit(TimeUnit.NANOSECONDS)
    @Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
    @Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
    @Fork(1)
    @State(Scope.Benchmark)
    public class MyBenchmark {

        @Param({
            "1000000",
            "10000000"
        }) int MAX_COUNT;

        @Benchmark
        public double parallelPiTest() {
            long count = IntStream.range(1, MAX_COUNT).parallel().filter(i -> {
                double x= Math.random(); 
                double y= Math.random(); …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing microbenchmark java-8 java-stream

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

如何使用Java 8中的比较器按参数对流进行排序?

如何使用Java 8中的比较器和参数对集合进行排序?

这是一段代码:

    List<Point> sortedNeurons = neurons.parallelStream()
        .sorted((n1, n2) -> Double.compare(
            n1.getEuclideanDistanceFrom(inputVector),
            n2.getEuclideanDistanceFrom(inputVector)))
        .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

您将获得一个参数inputVector,该参数可以传递给返回原始double值的函数.如果应用于集合的元素,则返回一些数字.我希望通过此值对集合进行排序.类似于:通过getEuclideanDistanceFrom(inputVector,id)从神经元中选择id;

这里有三个问题:

  1. nx.getEuclideanDistanceFrom(inputVector)重复两次.
  2. 我想在使用order by子句时使用double类型的自然排序,而不是像在SQL查询中那样声明它.
  3. 也许n1,n2 - > n1,n2可以用双冒号::符号代替.

PS我有一种强烈的感觉,它可以使用像双功能或双音素这样的东西来修复......但是无法弄清楚...

java lambda higher-order-functions java-8 java-stream

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

具有功能接口的Java-8 lambda表达式行为

我只是尝试了几个java-8函数式编程,我对lamda表达式的行为几乎没有怀疑.我试图用简单的命令模式解释下面的问题.

public interface Editor {
    public void open();
    public void close();
//  public void save();

}
Run Code Online (Sandbox Code Playgroud)

编辑实施

public class MyEditor implements Editor {

    @Override
    public void open() {
        System.out.println("...opening");

    }

    @Override
    public void close() {
        System.out.println("...closing");
    }

}
Run Code Online (Sandbox Code Playgroud)

界面动作

// this is actually a @FunctionalInterface
public interface Action {
    public void perform();

}
Run Code Online (Sandbox Code Playgroud)

可行的物品.

public class Open implements Action {

    private final Editor editor;

    public Open(Editor editor) {
        this.editor = editor;
    }

    @Override
    public void perform() {
        editor.open();
    }

// …
Run Code Online (Sandbox Code Playgroud)

java lambda functional-programming java-8

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

Lambda:声明通用类型内联

我的目标

我想写一个通用的计时功能(我删除了这个问题的实际时间码,因为它并不重要).

我有一个输入和输出未知的函数.我想在循环中运行这个函数几次并将循环变量传递给它.

为此,我定义了一个接口,可以将循环变量转换为函数所需的类型.

我的守则

interface Function<R,T> {
    R run(T input);
}

interface InputGenerater<T> {
    T fromLoop(int i);
}

public static void time(Function func, InputGenerater in) {
    for (int i = 0; i < 10; i++) {
        func.run(in.fromLoop(i));
    }
}

public static void main(String[] args) {
    // example: my function expects a string, so we transform the loop variable to a string:
    InputGenerater<String> intToString = (int i) -> String.valueOf(i) + "test";

    Function<String, String> funcToTest = (String s) -> s + …
Run Code Online (Sandbox Code Playgroud)

java generics lambda java-8

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

Java 8 - equals和hashcode的默认方法

我已经default在接口中创建了用于实现equals(Object)hashCode()以可预测方式的方法.我使用反射来迭代类型(类)中的所有字段以提取值并进行比较.代码依赖于Apache Commons Lang及其HashCodeBuilderEqualsBuilder.

问题是我的测试告诉我,第一次调用这些方法时,第一次调用需要花费更多的时间.计时器使用System.nanoTime().以下是日志中的示例:

Time spent hashCode: 192444
Time spent hashCode: 45453
Time spent hashCode: 48386
Time spent hashCode: 50951
Run Code Online (Sandbox Code Playgroud)

实际代码:

public interface HashAndEquals {

    default <T> int getHashCode(final T type) {
        final List<Field> fields = Arrays.asList(type.getClass().getDeclaredFields());
        final HashCodeBuilder builder = new HashCodeBuilder(31, 7);
        fields.forEach( f -> {
            try {
                f.setAccessible(true);
                builder.append(f.get(type));
            } catch (IllegalAccessException e) {
                throw new GenericException(e.toString(), 500);
            }
        });
        return builder.toHashCode();
    }

    default <T, …
Run Code Online (Sandbox Code Playgroud)

behavior equals hashcode java-8 default-method

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