0

Java初心者です。structsC のクラスは Java のクラスに似ていると読みましたが、次の疑問があります。

次のようなクラスがあります。

public class operations {
    public Integer[] stream;
    public Integer[] functi;
    public String[] name;
    public Integer[] funcgroup;
}

ユーザーから入力を取得し、nameそれをクラスの名前配列と比較します。一致する場合は、名前に対応する他のすべてのフィールドのレコードを返したいと思います。

たとえば。name が に対応する場合、[5]..ie 、、 にString[5]対応するすべてのレコードを出力したい。stream[5]functi[5]functigroup[5]

これどうやってするの?

編集今、私のプログラムは次のようになります:

public class operations extends DefFunctionHandler {
public ArrayList<Integer> stre = null;
public ArrayList<Integer> functii = null;
public ArrayList<String> nmee = null;
public ArrayList<Integer> funcigroup = null;
public ArrayList<Integer> sourcee = null;

public void filter(String x){
    DefFunctionHandler defi = new DefFunctionHandler();
    functii = defi.getFunc();
    stre = defi.getStream();
    nmee = defi.getName();
    funcigroup = defi.getFuncgroup();
    sourcee = defi.getSource();

    Map<String, operations> map = new HashMap<String, operations>();
    operations operations = new operations(0, 0, x, 0, 0);
    map.put(x, operations); 
    operations op = map.get("flush");
    System.out.println(op.toString());

}

そして、パラメーター(int、int、string、int、int)を使用した操作のコンストラクターを宣言する必要があるというメッセージが表示されます。私の Map インターフェイスの実装が正しいかどうか、誰か教えてもらえますか?

4

1 に答える 1

5

操作オブジェクトをマップに保存する必要があります

マップはキー/値で機能し、ID をマップに入れると、対応するキーを取得できます。

あなたの例では、クラス Operation を使用します。

public class Operation { 
    public int stream;
    public int functi;
    public name; 
    public int funcgroup;
}

そしてこのような地図:

Map<String, Operation> map = new HashMap<String, Operation>();
Operation operation = new Operation(0,0,"name5", 0);
map.put("name5", operation);

以下を使用して Operation オブジェクトを取得できます。

Operation op = map.get("name5");
于 2013-06-10T16:48:31.670 に答える