JavaRush /Java Blog /Random-TK /Islendik obýektleriň sanawynda Java Arrays.sort () ulanma...

Islendik obýektleriň sanawynda Java Arrays.sort () ulanmak

Toparda çap edildi
Esasanam sanawyňyzda başlangyç san maglumatlarynyň görnüşleri däl-de, obýektleriň örtükleri (,,,,) bar Listbolsa , tertiplemek Bytekyn Integerbolup biler. Simpleönekeý meseleleri çözmek ýa-da söhbetdeşiň soragyna jogap bermek üçin örän peýdaly usuly ulanmagy maslahat berýärin. Ilki bilen, özümiziň doldurjak zadymyzy saýlalyň . Bu mysalda ýönekeý maglumat gurluşyndan grafiki gyralaryň () sanawyny ulanaryn : ShortLongDoubleFloatIslendik obýektleriň sanawynda Java Arrays.sort () ulanmak - 1ListEdgesGraph
// Очень простой класс 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();

Graf näme?

Aýry-aýry matematikada grafika jübüt toplum ( V, E) hökmünde kesgitlenýär, bu ýerde Vözbaşdak sanalýan toplumyň bir bölegi we Ekiçi ( VхV).

Matematiki abstraksiýalara öwrenişmedikler üçin beýle kesgitleme gaty düşnükli bolmaz, geliň has ýönekeý aýdalyň:

Graf, olary birleşdirýän depeleriň we gyralaryň ýygyndysydyr. Abstraksiýa giňişliginden derrew material älemine çykarjak grafigiň gowy mysaly demir ýollaryň kartasydyr.

Şeýle grafigiň uçlary stansiýalardyr . Garaz, olaryň arasyndaky ýollar gyralardyr .

Soňra interfeýsiň ýerine ýetirilişini kesgitleýäris 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;
    }
}
Bu mysalda, grafanyň gyralaryny agramy boýunça ýa-da src (çeşme) sözbaşysyndan dst (nokat) nokadyna çenli aralyk boýunça tertipläris . Ahyrynda, adaty usuly ulanýarys java.util.Arrays.sort ():
Arrays.sort(edges, new SortByCost())
Indi obýektler bilen doldurylan sahypamyz Edgesýokarlanýan tertipde (kiçiden ulusyna) tertiplenýär. Çözüwiň awtory Ethan Arrowood.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION