특히 목록에 기본 숫자 데이터 유형이 아닌
그런 다음 인터페이스 구현을 정의합니다
List
개체 래퍼( Byte
, Integer
, Short
, Long
, Double
, )가 포함된 경우 정렬이 까다로울 수 있습니다. Float
간단한 문제를 해결하거나 면접관의 질문에 답할 때 매우 유용할 수 있는 방법을 사용하는 것이 좋습니다. 먼저 를 채울 내용을 선택해 보겠습니다 List
. Edges
이 예에서는 간단한 데이터 구조의 그래프 가장자리( ) 목록을 사용합니다 Graph
.
// Очень простой класс Edge (рёбро графа)
public class Edge {
public Vertex src;
public Vertex dst;
public double cost;
// создание ребра между двух вершин
Edge(Vertex s, Vertex d, double c) {
src = s;
dst = d;
cost = c;
}
}
// Список рёбер
Edge[] edges = graph.getEdges();
그래프란 무엇입니까? 이산 수학에서 그래프는 집합의 쌍( 아마도 수학적 추상화에 익숙하지 않은 사람들에게는 그러한 정의가 그다지 명확하지 않을 것이므로 더 간단하게 말해 보겠습니다. 그래프는 정점과 이를 연결하는 간선의 집합입니다. 추상의 영역에서 물질의 영역으로 즉시 이동하는 그래프의 좋은 예는 철로 지도입니다. 이러한 그래프의 정점은 스테이션 입니다 . 음, 그들 사이의 경로는 edge 입니다 . |
java.util.Comparator
.
class SortByCost implements Comparator<Edge> {
public int compare(Edge a, Edge b) {
if ( a.cost < b.cost ) return -1;
else if ( a.cost == b.cost ) return 0;
else return 1;
}
}
이 예에서는 가중치를 기준으로 또는 정점 src (소스)에서 정점 dst (대상)까지 의 거리를 기준으로 그래프의 가장자리를 정렬합니다 . 마지막으로 표준 방법을 사용합니다 java.util.Arrays.sort ()
.
Arrays.sort(edges, new SortByCost())
이제 개체로 채워진 시트가 Edges
오름차순(가장 작은 것부터 가장 큰 것까지)으로 정렬됩니다. 솔루션의 작성자는 Ethan Arrowood입니다.
GO TO FULL VERSION