Ҷудобандӣ метавонад душвор бошад, хусусан агар рӯйхати шумо на аз намудҳои ибтидоии ададии додаҳо
Пас мо татбиқи интерфейсро муайян мекунем
List
печонидани an objectҳоро ( 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();
Графика чист? Дар математикаи дискретӣ график ҳамчун ҷуфти маҷмӯи ( Эҳтимол, барои онҳое, ки ба абстраксияҳои математикӣ одат накардаанд, чунин таъриф чандон равшан нахоҳад буд, пас биёед соддатар бигӯем: График маҷмӯи қуллаҳо ва кунҷҳои онҳоро мепайвандад. Намунаи хуби графике, ки онро фавран аз доираи абстраксия ба олами мавод мебарад, харитаи роҳҳои оҳан мебошад. Қуллаҳои чунин графикҳо истгоҳҳо мебошанд . Хуб, роҳҳои байни онҳо кунҷҳо мебошанд . |
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())
Ҳоло варақи пур аз an objectҳо Edges
бо тартиби афзоиш (аз хурдтарин ба калон) мураттаб карда мешавад. Муаллифи ҳалли ин масъала Этан Арровуд мебошад.
GO TO FULL VERSION