Algorytm sprawdzający czy w tablicy liczb jakaś liczba się powtarza

0

Szukam pomocy z programowania. Bardzo proszę o pomoc, jestem kompletną pałką z programowania, a zajęcia zaliczyć muszę. Treść zadania:
Uzupełnij program o algorytm sprawdzający czy w tablicy liczby jakaś liczba się powtarza. Wykonanie algorytmu powinno się zakończyć wypisaniem jednego z dwóch, zgodnych prawdą, komunikatów:
Żadna liczba sie nie powtarza.
Liczba ... znajduje sie na pozycji ... oraz ....

Program:

import java.util.*;

public class Powtarzanie1
{
    public static void main(String[] args)
    {
        //utworzenie obiektu losującego 
        Random losowacz=new Random();
        //utworzenie tablicy, kt�rej rozmiar zostanie wylosowany
        int[] liczby=new int[losowacz.nextInt(11)+20];
        //wype�nienie utworzonej tablicy wylosowanymi liczbami
        for(int i=0;i<liczby.length;i++)
        {
            liczby[i]=losowacz.nextInt(51)-25;
        }
        		
        //System.out.println("Rozmiar tablicy: "+liczby.length);
        //System.out.println(liczby);
        System.out.println(Arrays.toString(liczby));
    }
}

z góry bardzo dziękuję <3

dodanie znacznika <code class="java">, poprawienie tematu wątku i tagów - fp

0

Posortuj tablicę i sprawdzaj po kolei czy następny element jest taki sam jak poprzedni.

0

Analogicznie załaduj wszystko do seta i sprawdź jego rozmiar ;]

List<Integer> numbers = Arrays.asList(tablica);
Set<Integer> set = new HashSet<Integer>(numbers);
if(set.size() < numbers.size()){
//coś się powtórzyło ;]
}
2

Użyj mapy:

Map<Integer, List<Integer>> liczby = new HashMap<Integer, List<Integer>>();// klucz to liczba, wartość, to lista pozycji
for(int i =0; i <tablica.length; i++){
    Integer liczba = tablica[i];
    if(!liczby.contains(liczba)){
        liczby.put(liczba, new ArrayList<Integer>());  
    }
    liczby.get(liczba).add(i);
}

Następnie wystarczy przeszukać mapę pod kątem warunku lista.size()>1

1 użytkowników online, w tym zalogowanych: 0, gości: 1