2012-07-11 14 views
1

프로덕션 시스템을 시뮬레이션하려고하는데 다른 클래스에있는 TreeMap에 값을 전달하고 전달하는 데 문제가 있습니다.다른 클래스의 TreeMap에 값을 전달하고 가져 오는 방법은 무엇입니까?

내가 간략하게하고자하는 것을 설명하기 위해 필자는 값을 (시스템에 추가 할 부품 수에 대한) 저장할 수있는 텍스트 패널과 숫자와 매개 변수가있는 패널을 만들 것이다. 시스템의 워크 스테이션이 설정됩니다. 내가 실행할 때, 그 값들은 추후 처리를 위해 저장되어야한다. 같은 내가 그 값을 저장하는 트리 맵을 사용하여 추천 한 이전 질문에

, 뭔가 :

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"); 
     } 
     }); 

    } 

} 
을 :

Station[num][type][avg_time][posx][posy][state] 
Part[num][type][state] 

이것은 내가 지금까지 코딩 한 것입니다

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; 
    } 
} 
,210

이하고 출력하기된다

내가이 문제가
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 입력]을 선택하고 키 [127 수 있어야 아웃풋이지도를보고 무엇을, 그것을 할이 올바른 방법입니다, 3] 맞죠?

둘째, 나중에 t.keySet()이 지금까지 아무것도 검색하지 않기 때문에 나중에 L 클래스의 TMap에서 매개 변수를 가져올 수 있습니까?

희망 나는 당신의 도움에 미리 감사드립니다.

답변

1

먼저 TMap.Station을 호출 할 때마다 새 TreeMap을 만듭니다. TreeMap을 필드로두고 생성자에서 대신 초기화하십시오. 두 개의 키/값 쌍이있는지도를 가져와야합니다.

두 번째 질문에 답하면 TMap을 필드로 만들 수 없으며 액세스하고 설정하기위한 메서드 만 만들 수 있습니다. 함수에서 인스턴스화 만하면 해당 함수가 종료 되 자마자 사라집니다 (범위는 해당 함수에만 포함됨).

편집 : 코멘트에 대응하여 ... 무엇

에 대한 편집 편집 : 게터에 대한 대략적인 윤곽을 추가. 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; 
    } 
} 
+0

내가 요구로 죄송하지만, 어떻게 필드로 트리 맵을 넣을 수 있습니다? 나는 접근하는 방법과 그지도를 만드는 방법을 알아 내려고 노력했지만 어떻게해야 할지를 알아 내지 못했다! 이러한 질문에 대해 유감스럽게 생각하지만 아직 다소 익숙합니다. –

+1

내가 말하는 것에 대한 대략적인 개요가 추가되었습니다. 희망이 도움이됩니다. –

+0

감사합니다. 실제로 도움이되었습니다. 출력 (예 : keySet, 값 및 기타)을 TMap 클래스 외부에서 가져 오려면 어떻게해야합니까? 내가 말했던 방법으로 당신이 아마 그것을 이해하지만 나는 그것을 만드는 방법을 보지 못하고있다! –

관련 문제