자바의 구조체 데이터에 3 개의 변수를 저장해야하는데, 나는 알파벳순으로 맵을 정렬해야하기 때문에 트리 맵에서 생각했습니다. 그러나 트리 맵은 2 개의 인수 만 취합니다.3 개의 문자열 인수를 가진 Treemap 자바
첫 번째 인수로 구조를 정렬 할 수있는 다른 구조는 무엇입니까? 같은
["abc","house","car"]
["bdc","house2","car2"]
자바의 구조체 데이터에 3 개의 변수를 저장해야하는데, 나는 알파벳순으로 맵을 정렬해야하기 때문에 트리 맵에서 생각했습니다. 그러나 트리 맵은 2 개의 인수 만 취합니다.3 개의 문자열 인수를 가진 Treemap 자바
첫 번째 인수로 구조를 정렬 할 수있는 다른 구조는 무엇입니까? 같은
["abc","house","car"]
["bdc","house2","car2"]
당신은 사용자 정의 비교와 배열의 목록을 사용할 수 있습니다
public static void main(String[] args) {
List<String[]> data = new ArrayList<>();
data.add(new String[]{"bdc", "house2", "car2"});
data.add(new String[]{"abc", "house", "car"});
printData(data);
Collections.sort(data, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return o1[0].compareTo(o2[0]);
}
});
System.out.println();
printData(data);
}
public static void printData(List<String[]> data){
for(String[] s: data){
System.out.println(Arrays.toString(s));
}
}
출력 : 정렬하기 전에
:
[BDC, 하우스 2, car2]
[abc 방송, 집, 자동차]
정렬 후 :
[abc, house, car]
당신은
class Person
{
String name;
String houseName;
String carName;
// add getter... setter..
......
}
지금 당신은 이름 또는 다른 필드를 사용하여 정렬 할 수 있습니다이 3 개 필드 클래스를 생성 할 수 있습니다
[BDC, 하우스 2, car2].
public static void main(String[] args) {
List<Person> data = new ArrayList<>();
data.add(new Person(name1, housname1, carname1));
data.add(new Person(name2, housename2, carname2));
// sorting using name
data.sort((o1, o2)->o1.getName().compareTo(o2.getName()));
// print data
printData(data);
당신은 행에있는이 3 개 값을 나타내는 3 개 필드가 별도의 클래스를 만들 수 있습니다
}
}, 당신은 각 행에 대해 해당 클래스의 새로운 객체를 생성 이 값을 설정하고'List'에 추가하면됩니다. 나중에 Comparators를 사용하여 Collections.sort (list, firstFieldComparator)를 정렬 할 수 있습니다. –