Устранить повторяющиеся значения из arraylist в Java - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть номер.1-й я узнал главный фактор этого числа.Скажем, число 12, а затем множитель [2,2,3].

Далее я должен выяснить другой фактор этого числа, такой как 12/2 = 6, [2,6] один фактор.Второй - 12/3 = 4, [3,4] другой фактор.

2-й пример, я рассмотрел другое число = 30.премьер фактор [2,3,5].Другим фактором является [2,15], [3,10], [5,6].

1, и само число исключается.

Теперь я беру массив, состоящий изосновные факторы данного числа.Затем я повторяю цикл, делю число на простой множитель и получаю еще один фактор.

Скажем ArrayList abc={2,3,5}

  if(abc.size()>=3){
        for(int i=0;i<abc.size();i++){
                abc1.add(abc.get(i));
                abc1.add(number / abc.get(i));


          }

        }

abc1 - еще один ArrayList для добавления цели.Теперь это решение хорошо работает, когда abc arraylist состоит из 3 или более 3 различных чисел, как в примере 30. Но оно не работает хорошо для повторяющихся чисел, как в примере 12, где простой список 2 является повторяющимся числом.Я получаю вывод [2,6], [2,6], [3,4].

Чтобы узнать повторяющееся число из списка, я записываю этот кодовый блок

for(int k=0;k<abc.size();k++){
        for(int j=k+1;j<abc.size();j++){
            if(abc.get(k).equals(abc.get(j))){
                System.out.println(abc.get(j));
            }
        }
    }

Но как я могу использовать это с предыдущим кодом для устранения одного 2.

1 Ответ

0 голосов
/ 06 января 2019

Если вы хотите избежать дубликатов, вы можете использовать linkedHashSet (чтобы удалить дубликаты и поддерживать порядок или вставку), а затем передать его в качестве аргумента в конструкторе ArrayList.

Set<Integer> s = new LinkedHashSet<>();
ArrayList<Integer> a = new ArrayList<>(s);

Я надеюсь, что смог ответить на ваш вопрос, если я не сделаю, пожалуйста, дайте мне знать.

...