자바 다른 유형의 자료를 정렬

자바 다른 유형의 자료를 정렬

작성일 2015.02.28댓글 2건
    게시물 수정 , 삭제는 로그인 필요

자바로 정렬하는 기능이 필요합니다.
String text = "자료1/자료2"; 와 같은 자료가 있을 때,
우선 '자료2' 기준으로 정렬을 하고, 같은 자료2 수준에서는 자료1로 정렬하려고 합니다.

예를 들면,

String text = "서초/20, 강남/15, 성북/30, 서대문/1, 양천/12, 구로/12";

String output = "성북/30, 서초/20, 강남/15, 구로/12, 양천/12, 서대문/1";


어떻게 하면 좋을까요?
split 함수 이후 배열로 짜서 Arrays.sort 함수 + Comparator 를 이용하려고 하였으나,
배열은 하나의 유형만 가질 수 있어, '자료2' 부분의 정렬이 제대로 되지 않더군요.

고수님의 도움을 바랍니다.


#자바 다른 클래스 메소드 호출 #자바 다른 클래스 변수 호출 #자바 다른 클래스 호출 #자바 다른 패키지 클래스 호출 #자바 다른 파일 클래스 호출 #자바 다른 프로젝트 클래스 호출 #자바 다른 패키지 import #자바 다른 클래스 함수 호출 #자바 다른 클래스 배열 호출 #자바 다른 패키지 상속

profile_image 익명 작성일 -

아래의 소스 참고하세요^^

class Data {
    String region;
    int    count;
    Data(String data) {
        String [] arr = data.trim().split("/");
        region = arr[0];
        count  = Integer.parseInt(arr[1]);
    }
public String toString() {
return region + "/" + count;
}
}

class Comp implements Comparator<Data>{
@Override
public int compare(Data o1, Data o2) {
if (o1.count == o2.count) {
return o1.region.compareTo(o2.region);
}
return o2.count - o1.count;
}
}

public class SortTest {
public static void main(String[] args) {
String text = "서초/20, 강남/15, 성북/30, 서대문/1, 양천/12, 구로/12";
String[] arr = text.split(",");

Data[] list = new Data[arr.length];
int loc = 0;
for (String data : arr) {
list[loc++] = new Data(data.trim());
}
Arrays.sort(list, new Comp());
String output = "";
int count = 0;
for (Data data : list) {
if (count != 0) {
output += ", ";
}
output += data.toString();
count++;
}
System.out.println(output);
}
}

profile_image 익명 작성일 -

먼저 다음과 같은 데이터 Class를 하나 만듭니다


public class TEMP

{

     private String 지역;

     private String 숫자;

}


split 해서 나온 데이터를


해당 Class 에 넣어주고 ArrayList에 넣어줍니다.


예를 들면


ArrayList<TEMP> arrData = new ArrayList<TEMP>();


String [] temp1 = text.split(",");

String [] temp2 = temp1[0].split("/");


TEMP data = new Temp();

data.지역 = temp2[0];

data.숫자 = temp2[1];


arrData.add(data);


....... 반복


for(int i = 0; i < data.size(); i++)

{

  for(int j = i + 1; j < data.size(); j++)

  {

/**소팅 알고리즘 **/

if(data.get(i).숫자 > data.get(j).숫자)

{

}

  }

}


위에를 응용하시면 되겠습니다

자바 다른 유형의 자료를 정렬

자바정렬하는 기능이 필요합니다. String... 하나의 유형만 가질 수 있어, '자료2' 부분의 정렬이 제대로 되지 않더군요. 고수님의...

자바의 기본자료유형 8가지엔...

자바의 기본자료유형 8가지엔 무엇이 잇나여?? ㅜㅜ 급해ㅕㅇ 제발 ..... 이 논리형은 다른 데이터형으로 변환하거나 다른 데이터형에서 변환 될 수 없습니다....

자바 버블정렬 질문

... 버블정렬써서 다른 배열에 담아... //다른 배열로 그냥 값을 옮기면 되는건지;; //자바 관련 자료 제 블로그에 많아요^^ // http...

자바스크립트 객체 질문~

... 자바스크립트 공부하는 학생인데 객체에 대해... 내림차순으로 정렬하시오. // (66, 33, 25, 19, 10, 8} 위... 주어진 것과 같은 일반 객체 외에도 두 가지 유형의...

컴퓨터교육 전공 관련 질문 모범답변...

... ▶ c언어와 자바언어의 차이점에 대해 아는대로... 포인터는 메모리 주소를 저장하는 변수로, 다른 변수의... 힙 정렬(Heap Sort): 힙 자료구조를 사용하여 정렬하는...

c언어,자바스크립트,파이썬 독학...

... 가까운 유형으로 직접 기술할 수 있으며 언어를 간단하게 하여 풍부한 표준 자료집을 갖게 할 수 있으며 연산자가 많고 다른 기종에 프로그램 이식이 쉬움 3) Java: 객체...

해외취업 자바스크립트

해외취업을 꿈꾸며 공부 하고있는데 혹시 자바스크립트 잘해서... 02 데이터 정렬 알고리즘을 이해하고 구현할 수 있고 Stack과 Queue 자료구조에 대해 이해하고 구현할 수...