powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Рефакторинг
3 сообщений из 28, страница 2 из 2
Рефакторинг
    #38369406
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaМожет легче перегнать каждый список в отдельное Множество?Если Вам нужно выполнить пересечение списков, тогда нет необходимости перегонять все в отдельное множество:
Код: java
1.
2.
3.
4.
5.
6.
List<String> asu = new ArrayList<>();
List<List<String>> rzs = new ArrayList<>();
...
for (List<String> row : rzs) {
	row.retainAll(asu);
}


И результат:
rzs = [[150, 151, 167, 153, 154, 155, 156, 157, 158, 159], [161, 162, 167, 164, 165, 166, 263, 168, 169, 170], [172, 230, 59, 175, 176, 177, 274, 179, 180, 181], [183, 241, 58, 186, 187, 11, 285, 190, 191, 192], [194, 252, 57, 197, 198, 11, 296, 201, 202, 203], [205, 263, 56, 208, 209, 11, 307, 212, 213, 214], [216, 217, 55, 219, 220, 11, 222, 223, 224, 225], [227, 228, 54, 230, 231, 11, 233, 234, 235, 236], [238, 239, 53, 241, 242, 11, 244, 245, 246, 247], [249, 250, 52, 252, 253, 22, 255, 256, 257, 258], [260, 261, 51, 263, 264, 22, 266, 267, 268, 269], [271, 272, 50, 274, 275, 22, 277, 278, 279, 280], [282, 283, 49, 285, 286, 22, 288, 289, 290, 291], [293, 294, 295, 296, 297, 22, 299, 300, 301, 302], [304, 305, 306, 307, 308, 33, 310, 311, 312, 313], [315, 316, 317, 318, 319, 33, 321, 322, 323, 324], [189, 228, 132, 33], [186, 187, 189, 33], [197, 198, 189, 44], [208, 209, 189, 200, 44], [219, 220, 156], [230, 231, 156], [241, 242], [252, 253], [263, 264], [274, 275], [285, 286], [296, 297], [307, 308], [318, 319]]

asu = [11, 11, 11, 11, 11, 11, 11, 22, 22, 22, 22, 22, 33, 33, 33, 33, 44, 44, 44, 55, 55, 230, 241, 252, 263, 274, 285, 296, 307, 318]
=
[[], [263], [230, 274], [241, 11, 285], [252, 11, 296], [263, 11, 307], [55, 11], [230, 11], [241, 11], [252, 22], [263, 22], [274, 22], [285, 22], [296, 22], [307, 33], [318, 33], [33], [33], [44], [44], [], [230], [241], [252], [263], [274], [285], [296], [307], [318]]
...
Рейтинг: 0 / 0
Рефакторинг
    #38369464
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman, спасибо за ответ. Но речь немного не о том.
Нормально ли искать элемент по всем строчкам и по всем столбцам? Просто если будет для каждого элемента из списка списков, который содержит 2000 строк и 10 столбцов, проходить еще и вектор(в нашем случае список Asu) ради определения совпадения. Это слишком накладно.
Я Множества в качестве примера привел, то что в них легко можно найти одинаковые элементы.
Если содержится строка(множества) в другом множестве, то искать элемент. Хотя и так не получится, готовой реализации нету, в которой проверяется не все множество, а его элементы, а если делать свою, то получится тоже банальное сравнение каждого с каждым.
+ С множествами не особо поработаешь. Удалит дубликаты, да и единственное полезное что может сделать - найти замены(элементы, изделия) который не содержатся ни в одном из списков.
--------------
Иными словами. Есть замена циклу O(N*M*K) ? (а то это ультра не круто)
...
Рейтинг: 0 / 0
Рефакторинг
    #38369483
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaЕсть замена циклу O(N*M*K) ? (а то это ультра не круто)Нужно индексировать значения ячеек и их отсортированных позиций в виде дерева (дополнительная структура):
Код: java
1.
Map<String, List<java.awt.Point>> = new HashMap<>();

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


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