2013-05-07 4 views
-3

저는 아직 Java에 익숙하지 않아 코드 구성에 많은 문제가 있습니다. 클래스에는 데이터에서 작동하는 데이터와 메서드가 포함되어야한다는 것을 알고 있지만 코드 구성 방법에 대한 회색 영역을 여전히 찾습니다.비교기 구현 방법/구현 방법

예를 들어 데이터에 작동하는 데이터와 메서드가 포함 된 Object1이 있습니다. Object1에는이 클래스에서 파생 된 데이터의 정렬되지 않은 맵을 반환 (가져 오기)하는 메서드가 포함되어 있습니다. DifferentObject1 클래스에서 Object1의 데이터를 사용하여이 데이터의 그래프를 작성합니다. DifferentObject1은 정렬하기 위해받은 맵의 데이터가 필요합니다. 맵의 키는 문자열이고 값은 부동입니다.

목표는 float 값에 따라 맵을 최대에서 최소로 정렬하는 것입니다. 코드 구성이 진행되는 동안이 데이터의 정렬은 어디에서 발생해야합니까? 현재 _myData 변수는 정렬되지 않은 데이터 맵입니다. 또한 클래스에서 Comparator를 구현하여지도를 정렬하는 가장 좋은 방법은 무엇입니까? 여기

는 시각화하는 데 도움이되는 몇 가지 코드 :
public class Object1 
{ 
    private Map<String, float> _myData = new HashMap<String, float>(); 

    public Object1 
    { 
     *do stuff....* 
    } 

    public Map<String, float> getMyData() { return _myData; } 
} 

public class DifferentObject1 
{ 
    public DifferentObject1(Object1 obj1) 
    { 
     *do stuff with obj1* 
    } 
} 

그래서 기본적으로 내 DifferentObject1 클래스 내 DifferentObject1 클래스가 그래프를 생성 할 데이터를 사용하여 수행 한 후 데이터의 정렬 된 그래프를 표시합니다.

+0

이곳의 상황은 어떻게됩니까? 나는 투표를하고 심지어 이유를 모른다. –

+2

나는 당신을 투표하지 않았고 계획을 세우지 않았다. 그러나 "비교 자 정렬 자바"라는 단어를 Google에 입력하면 [이것은 첫 번째로 반환 된 링크] (http : //www.vogella .com/blog/2009/08/04/collections-sort-java /) 나는 그것을 읽는 것이 좋습니다. 또한'Map'은 정렬을위한 것이 아닙니다. – durron597

+0

고마워요. 나는 연구를했지만 때로는 내가 읽는 것과 이해할 수있는 해결책을 항상 이해하지 못한다. 그래서 제가 여기서 질문했습니다. 나는 내 문제를 더 깊이 이해하려고 노력했다. –

답변

1

적절한 디자인은 부분적으로 스타일의 문제이지만 대부분 의미가 있습니다. 데이터 정렬이 논리적으로 데이터 자체에 묶여있는 경우 데이터를 나타내는 클래스가 Comparable 인터페이스를 구현하고 (항상 정렬 된 방식으로 데이터를 나타 내기 위해) 의미가 있습니다. 정렬 순서의 정의가 컨텍스트 (응용 프로그램에서와 같이 들리는) 인 경우 문맥에 맞게 Comparator을 정의하는 것이 더 적합합니다.

1

글쎄, 내 지식에 따르면 Map은 값을 정렬하는 데 적합하지 않습니다. TreeMap은 요소를 키순으로 순서대로 삽입하지만, 값을 정렬하려면 먼저 값 컬렉션을 가져온 다음 (values ​​() 메서드) 컬렉션으로 정렬해야합니다.

+0

정렬을 수행해야하는 클래스는 무엇입니까?정렬 된 데이터가 필요한 클래스 또는 데이터를 가져 오는 클래스? –

+1

데이터를 필요로하는 데이터 (getMyData()를 호출하는 데이터) – Igor