小编Leg*_*ato的帖子

用于查找3个值的中值的通用方法

我需要一种方法来获得3个值的中值,我认为这是一个编写泛型方法的好机会,因为我没有真正实践过.我写了这个并且看起来非常直截了当,虽然我得到了警告,但根据我的测试,它似乎工作得很好.

我知道我可以使用固有排序的集合,或者Collections.sort(),但这种方法是为了理解.

我想指出一些事情:

  1. 我发现,如果我想声明,这并不工作medianHelperArrays.asList(a, b, c)这是为什么?试图搜索这个给我无关的结果,否则它是难以捉摸的,因为我不确定发生了什么.我得到了一个UnsupportedOperationException,但这不是我下面的方式.
  2. 为什么我会收到警告?有什么不对/缺少?

方法如下:

private static <T extends Comparable> T median(T a, T b, T c) {
    List<T> medianHelper = new ArrayList<>();
    T max;
    T min;

    medianHelper.add(a);
    medianHelper.add(b);
    medianHelper.add(c);

    if (a.compareTo(b) >= 0) {
        max = a;
        min = b;
    } else {
        max = b;
        min = a;
    }

    if (max.compareTo(c) == -1) {
        max = c;
    }

    if (min.compareTo(c) >= 0) {
        min = c;
    } …
Run Code Online (Sandbox Code Playgroud)

java sorting generics median

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

什么是Java相当于Python的reduce函数?

在这里这里已经提出了类似的问题,但鉴于Java 8的出现,以及这些问题的普遍过时的性质,我想知道现在是否会有至少与之相似的东西?

就是我所说的.

python java lambda functional-programming function

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

JavaFX和网络

我是套接字和网络编程的新手,这是我尝试创建一个简单的聊天服务器,我的代码似乎没有任何错误(据我所知),它编译得很好但是当我尝试运行它时,似乎陷入困境,什么都不做.

抱歉,如果这样的事情已经被问到,我什么都没找到,但我不确定是什么问题,所以我真的不知道该找什么.

服务器:

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.stage.Stage;

public class ChatServer extends Stage {
    TextArea informationArea = new TextArea();
    String message = null;

    public ChatServer() {
        informationArea.setEditable(false);
        setTitle("Chat Server");
        setScene(new Scene(informationArea, 500, 300));
        show();

        try {
            ServerSocket serverSocket = new ServerSocket(8000);
            informationArea.appendText("Server started at " + new Date() + '\n');

            int clientNumber = 1;

            while(true) {
                Socket socket = serverSocket.accept();
                InetAddress inetAddress = socket.getInetAddress(); …
Run Code Online (Sandbox Code Playgroud)

java networking multithreading javafx

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