Diskuze: Set<Integer> na int

Java Java Set<Integer> na int

Avatar
BLADE
Člen
Avatar
BLADE:

Zdravím,
potreboval by som pomoc pri prasovaní. Spravil som náhodné čísla ktoré generujú iba čísla ktoré ešte neboli generované teda žiadne sa neopakuje. Problém je že som to spravil v Set<Integer> a ten potrebujem dostať na int teda na pole int-ov.
Ide o to že mám slovo v ktorom chcem odhaliť niektoré písmená. Potrebujem teda čísla pozícií znakov ktoré odhalím.

int pocetOdhalenych = 2;
Random random = new Random();
Set<Integer> odhalene = new LinkedHashSet<Integer>();
while(odhalene.size() < pocetOdhalenych){
    Integer dalsi = random.nextInt(spravneSlovo.length());
    odhalene.add(dalsi);
}

Takto to všetko funguje napr keď si dám pri výpise odhalene.toString() len to potrebujem dať na ten int :D

 
Odpovědět 27. března 14:57
Avatar
Atrament
Člen
Avatar
Odpovídá na BLADE
Atrament:

Nejsem si jistý jestli jsem tě pochopil úplně správně, ale pokud ti jde o to ty čísla mít v kolekci, kterou můžeš procházet pomocí indexů, tak ten Set prostě převeď na List:

List<Integer> listOdhalenych = new ArrayList<>();
listOdhalenych.addAll(odhalene);

Pokud je účelem vypsat to 'spravneSlovo' tak, že neodhalené písmena jsou nahrazena například pomlčkou (jako u oběšence), tak to ale nepotřebuješ ne? Stačí vypisovat to spravneSlovo znak po znaku a vždycky se akorát kouknout do setu, jestli tam někde je právě zpracovávaný index, nějak takto:

String result="";
for (int i = 0; i < spravneSlovo.length(); i++) {
  if (odhalene.contains(i)) {
    result += spravneSlovo.charAt(i); //tento index je v odhalených, takže do result přidáme písmeno
  }
  else {
    result += "-"; //tento index není v odhalených, takže přidáme pomlčku
  }
}
 
Nahoru Odpovědět 27. března 16:57
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.