Java/Weka - 需要创建独特的实例 [英] Java/Weka - Need to create unique instances

查看:31
本文介绍了Java/Weka - 需要创建独特的实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否有一种方法可以检查我的新实例是否已经在Java中创建并添加到我的实例中...喜欢;

I wonder if there is a method that checks whether my new instance has been already created and added to my instances in Java... Like ;

Instance instance = new Instance(i, vals);
if(instances.contains(instance) == false) { //or hasInstance maybe
    instances.add(instance);
}

推荐答案

我明白,你想要两个对象 x1x2x1.equals(x2) 表示 x1 是同一个实例 (x1 == x2).

I understand, that you want for two objects x1 and x2 with x1.equals(x2) that x1 is the same instance (x1 == x2).

一个人需要做这样的事情:

One needs to do something like this:

private Map<Instance, Instance> identityMap = new HashMap<>();

public Instance unique(Instance instance) {
    Instance first = identityMap.get(instance);
    if (first == null) {
        first = instance;
        identityMap.put(instance, instance);
    }
    return first;
}

Instance instance = new Instance(i, vals);
instance = unique(instance);

原因是,您要维护第一个实例,供所有人使用.

The reason is, that you want to maintain the first instance, to be used by all.

顺便说一句 - 用于其他目的:

Set<Instance> instances = ...;

代替

if (!instances.contains(instance)) { // if not instances contains

可以使用类似的代码

if (instances.add(instance)) {
    // Added, hence new...
} else {
    // Not added, hence already existing...
}

这篇关于Java/Weka - 需要创建独特的实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆