2012-06-14 2 views
3

У меня есть ArrayList, который содержит ряд целых чисел (представление индексов в другом ArrayList).Получите уникальные пары элементов из ArrayList в Java

Мне нужно извлечь каждую пару Unique например ...

ArrayList = 1,4,5,7 

мне нужно:

1:4 
1:5 
1:7 
4:5 
4:7 
5:7 

Что это самый простой способ достижения этой цели?

+0

@SimplyPanda Не так много - это то, что очевидно очень просто. Я мог бы обойти это, нажимая вещи на массив, поскольку они проверены, но кажется, что это излишний. Это для чужого кода в очень простом физическом движке. Мы сократили объекты в конкретной сетке и должны эффективно выбирать пары для проверки на столкновение. Поскольку это похоже на то, что это должен быть 1-лайнер, я надеялся, что кто-то может дать мне быстрый ответ. – Basic

+0

Вы ищете простой в использовании или эффективный? Сколько его имеет этот массив? – ssedano

+0

@ssedano Потенциально пара тысяч – Basic

ответ

6

список новообращенного Set и обратно List для уникальной фильтрации

for(int i = 0 ; i < list.size(); i ++){ 
    for(int j = i+1 ; j < list.size(); j ++){ 
    System.out.println(list.get(i) + "," + .list.get(j))  
    } 
} 
+0

Спасибо - отлично выглядит – Basic

+0

Добро пожаловать :) –

0

Ну перебрать все возможные варианты для первого элемента. Для каждого из них проведите все возможные варианты для второго.

Я оставлю часть поиска дубликатов до вас (подсказка: используйте Set).

0

У вас может быть два показателя: один для первой части, второй для второго. Затем interate through с первой формой начало к одному-но-последнему элементу, а во внутреннем цикле повторяется со вторым от одного-прошлого-первого до конца.

+0

Это было бы генерировать пары, которые не являются уникальными. –

+0

@SeanOwen - почему так? второй всегда начинается с первого, поэтому пары не встречаются более одного раза - см. ответ Джигара, это по сути то же самое – Attila

+0

Поскольку исходный список может иметь повторяющиеся значения, но ОП просто уточнил, что это не так. Если да, то это прекрасно. –

0

Интересно, подходит ли использование структуры графика с однонаправленным отношением.

Это много работает, чем простая перестановка, но, вероятно, более интересна для реализации. Специально для большого числа пар.

+0

Я бы не бросил базу данных при такой простой проблеме – Attila

Смежные вопросы