gpt4 book ai didi

java - 使用映射接口(interface)在类似 'struct' 的类实现中查找值

转载 作者:行者123 更新时间:2023-12-01 23:45:54 27 4
gpt4 key购买 nike

我是Java的初学者,我正在尝试使用类在Java中实现类似结构的数据结构,并且我想在其中寻找匹配...这个问题之前可能已经被问过,但我找不到它。请帮忙。代码如下:

public class operations extends DefFunctionHandler {  

public Integer stream;
public Integer funct;
public String name;
public Integer funcgroup;
public Integer source;
}
//in another class
public void execute(String x) {

List<operations> oplist = new ArrayList<operations>();
operations op = new operations();

for(int i=0; i< functi.size();i++){
op.stream = str.get(i);
op.funct = functi.get(i);
op.funcgroup = functigroup.get(i);
op.name = nme.get(i);
op.source = src.get(i);

}

oplist.add(op);
Map<String, List<operations>> map = new HashMap<String, List<operations>>();

map.put(x, oplist);
List<operations> ope = map.get(x);
for (Map.Entry<String, List<operations>> entry : map.entrySet()) {
String key = entry.getKey();
List<operations> value = entry.getValue();
System.out.println(value);
}

}

正如所见,我有一个类操作,其中有各个字段。在另一个名为 execute 的方法中,我以数组的形式将值添加到这些字段中。现在,我从用户那里获得了 name 的输入,我想在类/结构实现中搜索它,并将相应的流值返回给用户。我知道我必须实现 Map 接口(interface),但是我该怎么做呢?当我尝试打印 value 时,我得到 otf.operations@3934f69a 我的 Map Interface 和 get 方法的实现是否正确?我很困惑。请帮忙。

编辑 execute 方法的代码现在如下所示

 public void execute(String x) {

Map<String,Operations> obs = new HashMap<String,Operations>();

for(int i=0; i< functi.size();i++){
Operations op = new Operations();
op.stream = str.get(i);
op.funct = functi.get(i);
op.funcgroup = functigroup.get(i);
op.name = nme.get(i);
op.source = src.get(i);

obs.put(op.name, op);

}
System.out.println(obs.get(x));

}

最佳答案

您正在尝试打印列表:

System.out.println(value)

其中值为 List<operations> 。您想要做的是打印该列表的值。然后做类似的事情:

for (operations o : value) {
System.out.println(o.stream);
System.out.println(o.name);
}

编辑您需要的代码:

public void execute(String x) {


ArrayList<operations> ops= new ArrayList<operations>();
for(int i=0; i< functi.size();i++) {
operations op = new operations();
op.stream = str.get(i);
op.funct = functi.get(i);
op.funcgroup = functigroup.get(i);
op.name = nme.get(i);
op.source = src.get(i);
ops.add(op);
}


Map<String,ArrayList<operations>> map = new HashMap<String, ArrayList<operations>>();
map.put(x, ops);

for (operations operation : map.get(x)) {
System.out.println(operation.name);
}

}

关于java - 使用映射接口(interface)在类似 'struct' 的类实现中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17062242/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com