我正在尝试模拟生产系统,现在我无法获取并将值传递给位于不同类的TreeMap。
为了解释我打算简要介绍一下,我将创建一个Panel,我将在其中设置一些textpanels来保存值(用于添加到系统中的部件数量)以及一个表格,其中包含数量和参数。将设置系统上的工作站。当我运行它时,应存储这些值以供进一步处理。
在上一个问题中,我建议使用TreeMaps来存储这些值,例如:
Station[num][type][avg_time][posx][posy][state]
Part[num][type][state]
这是我到目前为止编码的内容:
L.java
import java.awt.*;
import javax.swing.*;
public class L extends JFrame {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
L l = new L();
TMap t = new TMap();
t.Station("num", 127);
t.Station("type", 3);
//System.out.println("Entryset: " + t.keySet());
//System.out.println("Entryset: " + t.Station() + "\n");
}
});
}
}
TMap.java
import java.util.*;
public class TMap {
//public TreeMap <String, Integer>St = new TreeMap<String, Integer>();
public int num_atrib = 6;
public static TreeMap<String, Integer> Station(String s,int i) {
TreeMap <String, Integer>St = new TreeMap<String, Integer>();
St.put(s,i);
System.out.println("Now the tree map Keys: " + St.keySet());
System.out.println("Now the tree map contain: " + St.values());
return St;
}
}
这是输出:
Now the tree map Keys: [num]
Now the tree map contain: [127]
Now the tree map Keys: [type]
Now the tree map contain: [3]
我有两个问题,首先,这是正确的方法,因为我看到的地图输出应该是[num,type]和键[127,3]对吗?
其次,我怎样才能在L类中从TMap获取参数,因为t.keySet()例如目前还没有找到任何东西!
希望我明确表示清楚,先谢谢你的帮助。
答案 0 :(得分:1)
首先,每次调用TMap.Station时都会创建一个新的TreeMap。尝试将TreeMap作为字段并在构造函数中初始化它。这应该会给你带有两个键/值对的地图。
回答你的第二个问题,是否有任何理由不能让TMap成为一个字段而只是创建访问和设置的方法?如果你只是在一个函数中实例化它,它会在函数退出后立即消失(加上它的范围只会在那个函数中)。
编辑:回应评论......怎么样
编辑编辑:为getter添加粗略轮廓。如果你想要像put()这样的东西,它会以类似的方式工作。
import java.awt.*;
import javax.swing.*;
import java.util.Set;
public class L extends JFrame {
private TMap t;
public L() {
t = new TMap();
}
public Set<String> getKeySet() {
return t.getKeySet();
}
public Integer get(String s) {
return t.get(s);
}
// your main method as before
}
和
import java.util.*;
public class TMap {
private TreeMap<String, Integer> St;
private int num_atrib = 6;
public TMap() {
St = new TreeMap<String, Integer>();
}
public Set<String> getKeySet() {
return St.keySet();
}
public Integer get(String s) {
return St.get(s);
}
public static TreeMap<String, Integer> Station(String s,int i) {
St.put(s,i);
System.out.println("Now the tree map Keys: " + St.keySet());
System.out.println("Now the tree map contain: " + St.values());
return St;
}
}