Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
public class Teilnehmer {
private String name;
private int telNr;
public Teilnehmer(String name, int telNr){
this.name = name;
this.telNr = telNr;
}
public Teilnehmer(String name){
this.name = name;
}
public String getName(){
return name;
}
// weitere get/set methoden
}
import java.util.*;
public class TeilnehmerListe implements TNListe {
private ArrayList<Teilnehmer> liste = new ArrayList<Teilnehmer>();
public void print(){
for(int i = 0; i < liste.size();i++){
System.out.println(liste.get(i).getName());
}
}
public boolean einfuegen(Teilnehmer tn) {
for(int i = 0; i < liste.size();i++){
if(liste.get(i).getName().equals(tn.getName())){
System.out.println("Achtung kann nicht Einfuegen. Gleicher Nachname");
break;
}
}
return liste.add(tn) ;
}
}
public class Anmelder extends Thread {
TeilnehmerListe liste = new TeilnehmerListe();
private int count = 0;
public void run(){
String[] zufall = new String[25];
for(int i = 0; i < 25; i++){
zufall[i] = ("A" + 24*Math.random());
Teilnehmer x = new Teilnehmer(zufall[i]);
if(liste.einfuegen(x) == true){
count++;
}
}
liste.print();
System.out.println(count);
}
public static void main(String[] args) {
Anmelder t1 = new Anmelder();
Anmelder t2 = new Anmelder();
t1.start();
t2.start();
}
}
1. Wie schaffe ich das wirklich 26 Zufällige Buchstaben von A-Z in der Klasse Anmelder erzeugt werden?
2.Ich möchte das ein counter die erfolgreichen Versuche zählt, die ein Thread braucht,um einen Teilnehmer anzumelden. Am ende möchte ich dann eine Übersicht erstellen z.b: Thread A hat 14 versuche gebraucht, Thread B 12. Es können ja Versuche scheitern, wenn der Buchstabe schon vorhanden ist.. Habt ihr ne idee?
1.
du hast doch Zufall drin, was stört dich daran, geht etwas nicht?
mit 24*Math.random() wirst du wahrscheinlich nicht bis zum Z kommen, aber das ist ja nur ein Detail
2.
auch das hast du doch schon mehr oder weniger mit counter, wobei du nicht unbedingt das richtige zählst
und auch bei Doppelten gar nicht reagierst (einfuegen() gibt allerdings auch immer true zurück)
du brauchst dann eher eine while-Schleife, die solange wiederholt bis x Teilnehmer drin sind
Falsch ist sicher mal dass du mit "A" rechnest. Das ist ein String und wenn man da was dazuaddiert ???
Versuchs mal mit 'A' und einem Faktor von 26 dann sollte es klappen.
Soll denn der Name eines users aus einem oder aus 26 Buchstaben bestehen?