【发布时间】:2020-06-26 05:10:55
【问题描述】:
我已经有一些这样的元组:
public GreenhouseControls() {
light = new Tuple<>("light", "off");
fans = new Tuple<>("fans", "off");
water = new Tuple<>("water", "off");
power = new Tuple<>("power", "on");
window = new Tuple<>("window", "good");
thermostat = new Tuple<>("thermostat","day");
}
我正在尝试在同一个类中使用setVariable() 方法,该方法将接收 2 个字符串(例如,“light”和“on”),并使用第一个字符串搜索第一个变量元组,当找到匹配项时,它将用第二个字符串替换第二个变量。
我尝试将元组添加到 ArrayList 但我无法让搜索部分工作。
有没有办法通过ArrayList 或HashSet 来实现这一点?
元组类:
public static class Tuple<A,B> {
public final A eventName;
public final B status;
public Tuple(A eventName, B status) {
this.eventName = eventName;
this.status = status;
}
public String toString() {
return "(" + eventName + ", " + status + ")";
}
}
【问题讨论】:
-
也许
HashMap更合适? -
@Sweeper 我对 HashMap 不是很熟悉(但我用 Google 搜索过,所以我认为我掌握了它的基础知识)所以您的意思是将元组存储在 hashmap 中或使用 hashmap 而不是元组?
-
为什么要使用哈希图?或者任何与此相关的列表数据结构?我会阅读 Java 面向对象并使用常见模式、getter/setter 方法来实现这一点?
-
你在使用
groovy.lang.Tuple吗? -
@Jesse 但即使我在 getter 中使用 getter/setter,我也需要一种方法来检查每个元组中我正在寻找的字符串,所以我需要一种方法来查看每个元组都需要一个列表或哈希图,对吗?