Networking 在列表中复制对象

Networking 在列表中复制对象,networking,duplicates,nodes,rssi,xbee,Networking,Duplicates,Nodes,Rssi,Xbee,我正在做一个编程项目,我想把一些对象存储在一个列表中,但是我不能消除重复的对象 这是我的目标 nd=nodeAddress16=0x10,0x03,nodeAddress64=0x00,0x13,0xa2,0x00,0x40,0x6f,0x8d,0xfc,rssi=-47,节点标识符= [0x10,0x03] 代码在线程中,因此代码是循环的 private void handleAtCommandResponse(XBeeResponse response) { //TODO Imple

我正在做一个编程项目,我想把一些对象存储在一个列表中,但是我不能消除重复的对象

这是我的目标

nd=nodeAddress16=0x10,0x03,nodeAddress64=0x00,0x13,0xa2,0x00,0x40,0x6f,0x8d,0xfc,rssi=-47,节点标识符= [0x10,0x03]

代码在线程中,因此代码是循环的

private void handleAtCommandResponse(XBeeResponse response) {
    //TODO Implement your code here, to handle particular AT command responses, if desired.
    System.out.println("NetworkNode: Received AT Response:"+((AtCommandResponse)response).getCommand());

    if (response.getApiId() == ApiId.AT_RESPONSE) {
        NodeDiscover nd = NodeDiscover.parse((AtCommandResponse)response);
        System.out.println("Node discover response is: " + nd);

        nodeDiscoverList.add(nd); //add to list, but gives duplicates of nd.

        //add to list if not already in it
        //if already in list replace that object with the new object
        //duplicate objects are not allowed ==> only one object in the list can contain a specific address.
        // Only addresses are static values, other values may change over time.


        }
    else {
        log.debug("Ignoring unexpected response: " + response); 
    }
}

如果不了解系统的其余部分来帮助确定为什么要使用相同的响应多次调用
handleAtCommandResponse
,请注意,您可以使用类似于列表的实现来避免存储重复的对象。如果nodeDiscovery尚未实现,则可能需要它来实现
hashCode()

集合
不允许重复对象。如果使用同一个对象调用两次
put()
(相反,其
hashCode()
等于集合中另一个对象的对象),则第一个实例将替换为第二个实例