小编Chi*_* A.的帖子

如何在迭代的同时以恒定的时间修改Java的链表中的元素?

我试图迭代 Java 的链表实现,并在恒定时间内修改链表的每个元素。我知道链表的 set() 方法,但该操作是 O(n) 。因此,如果我在循环中使用 set() 方法,它将是 O(n^2) 这不是我想要的。由于我正在遍历链表,因此我已经知道要修改其内容的节点的位置。有没有办法让我使用 Java 的链表在恒定时间内完成此操作?

我已经通过自定义实现多次执行此操作,但我没有找到在恒定时间内执行此操作的方法。我尝试在下面进行迭代,但我遗漏了一些东西。

LinkedList<String> list = new LinkedList<>();
list.add("A");
list.add("B");
list.add("C");
Iterator iterator = list.iterator();

while (iterator.hasNext()) {
    iterator.remove();
    iterator.set(); // using set() wouldn't be O(1)
}
Run Code Online (Sandbox Code Playgroud)

java linked-list data-structures

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

如何在HiveMQ客户端中获取客户端连接信息?(MQTT)

我正在编写一个主类,它将创建一些客户并测试他们的订阅和发布。我想显示客户端连接的信息,例如连接的数据和时间,clientId,用于连接的clientIP,无论它们是否正常连接。我是使用Logger之类的工具的新手,所以我不确定该怎么做。我留下了指向HiveMQ社区版(经纪人)和客户端的链接。我想在HiveMQ客户端项目的主类中显示此信息,但是社区版中有一个名为event.log的日志文件,其中包含我要显示的信息的确切类型。我在下面留下了一张图片。

HiveMQ:

https://github.com/hivemq/hivemq-community-edition https://github.com/hivemq/hivemq-mqtt-client

hivemq-community-edition中有一个event.log文件,其中包含我想显示的信息。它是在我将项目构建为Gradle项目时生成的,因此除非将其导入Eclipse并使用Gradle构建,否则不会找到它,因此我留下了它的屏幕截图。

事件簿

HiveMQ Client中我的主类中的代码:

package com.main;

import java.util.UUID;

import com.hivemq.client.mqtt.MqttGlobalPublishFilter;
import com.hivemq.client.mqtt.datatypes.MqttQos;
import com.hivemq.client.mqtt.mqtt5.Mqtt5BlockingClient;
import com.hivemq.client.mqtt.mqtt5.Mqtt5BlockingClient.Mqtt5Publishes;
import com.hivemq.client.mqtt.mqtt5.Mqtt5Client;
import com.hivemq.client.mqtt.mqtt5.message.publish.Mqtt5Publish;
import java.util.logging.Logger;
import java.util.NoSuchElementException;

import java.util.logging.Level;
import java.util.concurrent.TimeUnit;


public class Main {

    private static final Logger LOGGER = Logger.getLogger(Main.class.getName());  // Creates a logger instance 


    public static void main(String[] args) {

                Mqtt5BlockingClient client1 = Mqtt5Client.builder()
            .identifier(UUID.randomUUID().toString()) // the unique identifier of the MQTT client. The ID is randomly generated between 
            .serverHost("localhost")  // the host name or IP address …
Run Code Online (Sandbox Code Playgroud)

java logging mqtt hivemq

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

标签 统计

java ×2

data-structures ×1

hivemq ×1

linked-list ×1

logging ×1

mqtt ×1