powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сортировка LinkedList по ключу
1 сообщений из 1, страница 1 из 1
Сортировка LinkedList по ключу
    #38770739
TepKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,
Весь мозг сломал подмогите плиз мне с сортировкой, нужны выстроить элементы так чтобы
предыдущий был связан с текущим либо по либо по левому элементу либо по правому т.е. цепочой без разрывов
Например есть массив:
Код: java
1.
2.
3.
key1:key2
key4:key2
key1:key3



Нужно чтобы получилось что то типа:
Код: java
1.
2.
3.
key1:key3
key1:key2
key4:key2



Причем key и value могут в таких массивах меняться местами, например может быть таким
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
public class myTest {
    public static void main(String a[]){
        Comparator<Empl> relationshipComparator = new Comparator<Empl>(){

            public int compare(Empl e1, Empl e2) {
                String e1Left = e1.getLeft();
                String e1Right = e1.getRight();

                String e2Left = e2.getLeft();
                String e2Right = e2.getRight();
                if (
                        e1Left.equals(e2Left) ||
                        e1Left.equals(e2Right) ||
                        e1Right.equals(e2Left) ||
                        e1Right.equals(e2Right))
                {
                    return 0;

                }else {
                    return -1;
                }
            }
        };

        LinkedList<Empl> list = new LinkedList<Empl>();
        list.add(new Empl("key1", "key2"));
        list.add(new Empl("key4", "key2"));
        list.add(new Empl("key1", "key3"));

        System.out.println("after: ");
        for(Empl e:list){
            System.out.println(e.getLeft()+":"+e.getRight());
        }
        Collections.sort(list,relationshipComparator);
        System.out.println();
        System.out.println("before: ");
        for(Empl e:list){
            System.out.println(e.getLeft()+":"+e.getRight());
        }
    }

}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
public class Empl {
    private String left;
    private String right;

    public Empl (String left, String right){
        this.left=left;
        this.right=right;
    }

    public String getLeft() {
        return left;
    }

    public void setLeft(String left) {
        this.left = left;
    }

    public String getRight() {
        return right;
    }

    public void setRight(String right) {
        this.right = right;
    }
}



Вот что у меня есть:
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сортировка LinkedList по ключу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]