在 类 中实施嵌套树状图
Implement Nested Treemaps in Classes
我需要在 classes 中创建 3 个嵌套树图。换句话说,实现自己的 classes 并使用明确的命名,而那些 classes 在内部使用其他自定义 classes 的地图(再次包含地图)。
这将是结构:
TreeMap<String, TreeMap<String, TreeMap<String, Integer>>> squareRPM = new TreeMap<String, TreeMap<String, TreeMap<String, Integer>>>();
我创建了这个 class 外部树图:
import java.util.TreeMap;
public class Check extends InnerCheck {
private TreeMap<String, InnerCheck> tm;
public Check (){
tm = new TreeMap<String, InnerCheck>();
}
public void addTm1(String coinName, InnerCheck coinValue ){
tm.put(coinName, coinValue);
}
public void getT(String coinName){
System.out.println("My " + tm.get(coinName));
}
public TreeMap<String, InnerCheck> getTm() {
return tm;
}
public void setTm(TreeMap<String, InnerCheck> tm) {
this.tm = tm;
}
}
内部树图为:
import java.util.TreeMap;
public class InnerCheck extends InnerInnerCheck{
private TreeMap<String, InnerInnerCheck> ttm;
public InnerCheck (){
ttm = new TreeMap<String, InnerInnerCheck>();
}
public void addTm2(String coinName, InnerInnerCheck coinValue){
ttm.put(coinName, coinValue);
}
public TreeMap<String, InnerInnerCheck> getTttm() {
return ttm;
}
public void setTttm(TreeMap<String, InnerInnerCheck> ttm) {
this.ttm = ttm;
}
}
Inner Inner Tree 地图将是:
import java.util.TreeMap;
public class InnerInnerCheck {
private TreeMap<String, Integer> tttm;
public InnerInnerCheck(){
tttm = new TreeMap<String, Integer>();
}
public void addTm3(String coinName, Integer coinValue){
tttm.put(coinName, coinValue);
}
public TreeMap<String, Integer> getTtm() {
return tttm;
}
public void setTtm(TreeMap<String, Integer> tttm) {
this.tttm = tttm;
}
}
主要是我试图将项目放入嵌套的 Treemaps 中,但我不能,因为 addTm2 有一个错误表明我可能以错误的方式实现了那些三图 classes。
我正在访问它:`
Check money1 = new Check();
money1.addTm1("dinero2", money1.addTm2("dinero2",(money1.addTm3("dinero1", 3))));`
错误是:InnerCheck 类型中的方法 addTm2(String, InnerInnerCheck) 不适用于参数 (String, void)。
这是我第一次尝试在 classes 内实现嵌套树图。请提供反馈,用于学术项目。提前谢谢你。
调用 money1.addTm3("dinero1", 3)
return无效(-> 无)
因此,将它用作 addTm2(String coinName, InnerInnerCheck coinValue)
的参数无法正常工作,因为该方法需要一个 InnerInnerCheck 对象作为参数。
如果你想以这种方式使用你的 addTm 方法,你必须使它们 return 树对象:
public InnerInnerCheck addTm2(String coinName, InnerInnerCheck coinValue){
ttm.put(coinName, coinValue);
return this;
}
错误信息告诉了您需要知道的一切,您只需要知道如何解释它即可。
让我们只关注这部分代码:
money1.addTm2("dinero2",(money1.addTm3("dinero1", 3)))
方法 addTm2(String coinName, InnerInnerCheck coinValue)
需要一个 String 和一个 InnerInnerCheck 作为参数。
"dinero2"
是一个字符串,因此没关系。
但是,对于第二个参数,您传递的是方法 public void addTm3(String coinName, Integer coinValue)
的结果,"returns" void
而不是 InnerInnerCheck 方法 addTm2
所期望的结果。
这就是产生您所看到的错误的原因。
将其更改为:
Check money1 = new Check();
money1.addTm3("dinero1", 3);
money1.addTm2("dinero2", money1.getTtm());
money1.addTm1("dinero2", money1.getTttm());
我需要在 classes 中创建 3 个嵌套树图。换句话说,实现自己的 classes 并使用明确的命名,而那些 classes 在内部使用其他自定义 classes 的地图(再次包含地图)。
这将是结构:
TreeMap<String, TreeMap<String, TreeMap<String, Integer>>> squareRPM = new TreeMap<String, TreeMap<String, TreeMap<String, Integer>>>();
我创建了这个 class 外部树图:
import java.util.TreeMap;
public class Check extends InnerCheck {
private TreeMap<String, InnerCheck> tm;
public Check (){
tm = new TreeMap<String, InnerCheck>();
}
public void addTm1(String coinName, InnerCheck coinValue ){
tm.put(coinName, coinValue);
}
public void getT(String coinName){
System.out.println("My " + tm.get(coinName));
}
public TreeMap<String, InnerCheck> getTm() {
return tm;
}
public void setTm(TreeMap<String, InnerCheck> tm) {
this.tm = tm;
}
}
内部树图为:
import java.util.TreeMap;
public class InnerCheck extends InnerInnerCheck{
private TreeMap<String, InnerInnerCheck> ttm;
public InnerCheck (){
ttm = new TreeMap<String, InnerInnerCheck>();
}
public void addTm2(String coinName, InnerInnerCheck coinValue){
ttm.put(coinName, coinValue);
}
public TreeMap<String, InnerInnerCheck> getTttm() {
return ttm;
}
public void setTttm(TreeMap<String, InnerInnerCheck> ttm) {
this.ttm = ttm;
}
}
Inner Inner Tree 地图将是:
import java.util.TreeMap;
public class InnerInnerCheck {
private TreeMap<String, Integer> tttm;
public InnerInnerCheck(){
tttm = new TreeMap<String, Integer>();
}
public void addTm3(String coinName, Integer coinValue){
tttm.put(coinName, coinValue);
}
public TreeMap<String, Integer> getTtm() {
return tttm;
}
public void setTtm(TreeMap<String, Integer> tttm) {
this.tttm = tttm;
}
}
主要是我试图将项目放入嵌套的 Treemaps 中,但我不能,因为 addTm2 有一个错误表明我可能以错误的方式实现了那些三图 classes。
我正在访问它:`
Check money1 = new Check();
money1.addTm1("dinero2", money1.addTm2("dinero2",(money1.addTm3("dinero1", 3))));`
错误是:InnerCheck 类型中的方法 addTm2(String, InnerInnerCheck) 不适用于参数 (String, void)。
这是我第一次尝试在 classes 内实现嵌套树图。请提供反馈,用于学术项目。提前谢谢你。
调用 money1.addTm3("dinero1", 3)
return无效(-> 无)
因此,将它用作 addTm2(String coinName, InnerInnerCheck coinValue)
的参数无法正常工作,因为该方法需要一个 InnerInnerCheck 对象作为参数。
如果你想以这种方式使用你的 addTm 方法,你必须使它们 return 树对象:
public InnerInnerCheck addTm2(String coinName, InnerInnerCheck coinValue){
ttm.put(coinName, coinValue);
return this;
}
错误信息告诉了您需要知道的一切,您只需要知道如何解释它即可。
让我们只关注这部分代码:
money1.addTm2("dinero2",(money1.addTm3("dinero1", 3)))
方法 addTm2(String coinName, InnerInnerCheck coinValue)
需要一个 String 和一个 InnerInnerCheck 作为参数。
"dinero2"
是一个字符串,因此没关系。
但是,对于第二个参数,您传递的是方法 public void addTm3(String coinName, Integer coinValue)
的结果,"returns" void
而不是 InnerInnerCheck 方法 addTm2
所期望的结果。
这就是产生您所看到的错误的原因。
将其更改为:
Check money1 = new Check();
money1.addTm3("dinero1", 3);
money1.addTm2("dinero2", money1.getTtm());
money1.addTm1("dinero2", money1.getTttm());