小编Zab*_*uza的帖子

如何对大量的int进行排序?

在求职面试中,我被问到以下问题:

我们有一个客户端应用程序可以发送请求并接收一个int数据流(可能很大,但小于INT_MAX).我们需要这样做:

Int Data  ----> Our  ----> Sorted Int Data
Stream          App        Data Stream
Run Code Online (Sandbox Code Playgroud)

所以我会按如下方式编写方法:

public int[] sort(int[] array){
   Arrays.sort(array);
   return array;
}
Run Code Online (Sandbox Code Playgroud)

问题是大的 array不能装入堆栈并将被放入堆中,这会降低性能.如何以良好的性能重构它?

java arrays

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

JDK安装后缺少javah

我能找到java,javacjavadoc却没有javah.exe我的jdk\\bin文件夹中.

我试图重新安装JDK但它仍然缺失.我怎么能得到它,为什么它会丢失?

我发现了一个类似的问题,操作系统是Linux,但我找不到Windows用户的答案.

我的操作系统是Windows 10.Java版本是10.0.1.

java javah

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

Kotlin中的List是LinkedList吗?

Java中最受欢迎的列表是ArrayListLinkedList.

在科特林我看到ArrayListList.是List实际上是一个LinkedList?例如

val list = listof("1st", "2nd")
Run Code Online (Sandbox Code Playgroud)

java linked-list arraylist kotlin

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

空变量不会使方法引用无效

NullPointerException当我使用方法引用绑定到dog后来分配null给变量的变量时,为什么代码没有抛出?

我正在使用Java 8。

import java.util.function.Function;

class Dog {
    private int food = 10;

    public int eat(int num) {
        System.out.println("eat " + num);
        this.food -= num;
        return this.food;
    }
}

public class MethodRefrenceDemo {

    public static void main(String[] args) {
        Dog dog = new Dog();
        Function<Integer, Integer> function = dog::eat;

        dog = null;

        // I can still use the method reference
        System.out.println("still have " + function.apply(2));
    }
}
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception method-reference

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

仅具有最新条目的HashMap

我最近进行了一次采访,采访者要求我创建HashMap一个最多具有7个键/值对的。如果添加了第8个键/值对,则应删除第一个键/值对,并插入第8个键/值对,以此类推。

解决这个问题的好策略是什么?

java collections hashmap data-structures

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

使用单个 for 循环打印二维数组

如何使用单个for循环在java中打印二维数组?

我试图搜索答案,但只找到了使用多个循环的解决方案。

示例数组:

[
    [1, 2, 3],
    [4, 5],
    [6, 7, 8],
    [9]
]
Run Code Online (Sandbox Code Playgroud)

示例输出(确切格式无关紧要):

1, 2, 3, 4, 5, 6, 7, 8, 9
Run Code Online (Sandbox Code Playgroud)

使用单个 for 循环,而不是嵌套循环。


所以不是这样的:

for (int i = 0; i < array.length; i++) {
    for (int j = 0; j < array[i].length; j++) {
        System.out.print(array[i][j] + " ");
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays multidimensional-array

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

单行文本块

是否可以使用 Javas文本块功能(Java 15)但只写一行

看来我是被迫写多行了。


例如,我想在一行写是为了避免逃避"

String text = """<a href="https://sparkjava.com">https://sparkjava.com/</a>""";
Run Code Online (Sandbox Code Playgroud)

但它不能编译,我必须写

String text = """
    <a href="https://sparkjava.com">https://sparkjava.com/</a>""";
Run Code Online (Sandbox Code Playgroud)

反而。

我是否忽略了什么?

java java-text-blocks

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

用 == 比较 Integer 和 int

List<Integer> test = List.of(955, 955);
if (test.get(1) == test.get(0))
...
Run Code Online (Sandbox Code Playgroud)

以上条件导致 false

List<Integer> test = List.of(955, 955);
int a = test.get(1);
int b = test.get(0);
if (a == b)
...
Run Code Online (Sandbox Code Playgroud)

上述条件返回true

为什么会这样?片段之间有什么区别?

java autoboxing unboxing integer wrapper

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

如何在控制台显示字符串?

给定一个字符串值,如何将其显示在控制台的屏幕上?我必须写什么才能实现这一点?

作为一个例子,这是我到目前为止的代码:

public class Main {
    public static void main(String[] args) {
        String message = "I am a school student and just started learning Java.";
        // What to write next?
    }
}
Run Code Online (Sandbox Code Playgroud)

它可以工作,但显然还没有在控制台上显示该值。我必须写什么来展示它?


我希望它看起来像这样: 在此输入图像描述

但我得到的只是这样:

在此输入图像描述

java console

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

Function::当需要 BiFunction&lt;T, U, R&gt; 时应用

我对以下行感到困惑:

Seq<String> s1 = seq.zip(split, Function::apply);
Run Code Online (Sandbox Code Playgroud)

在这个片段中:

static String underscoreToCamel(String str) {
        UnaryOperator<String> capitalize = s -> s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
        
        Seq<UnaryOperator<String>> seq = c -> {
            c.accept(String::toLowerCase);
            while (true) {
                c.accept(capitalize);
            }
        };
        List<String> split = Arrays.asList(str.split("_"));
        Seq<String> s1 = seq.zip(split, Function::apply);
        String a = s1.join("");
        return a;
    }

public interface Seq<T> {
        void consume(Consumer<T> consumer);

        static <T> Seq<T> unit(T t) {
            return consumer -> consumer.accept(t);
        }

        default <E> Seq<E> map(Function<T, E> function) {
            return consumer -> consume(t -> …
Run Code Online (Sandbox Code Playgroud)

java lambda method-reference

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