# Random aus ArrayList



## spleiss22 (18. Mai 2010)

Hallo zusammen

Wie kann ich einen Zufallswert von einer ArrayList holen.
Wenn 2 Personen drinn sind z.b Hans und Peter sollte er einfach einen per Zufall nehmen
und in einen String packen.

Hier ist meine Methode wie könnte ich das machen?


```
public static String selectMA(String option, String option1, String tag, String tag1) throws ClassNotFoundException, SQLException
	   {
		   try
		   {
			   	  Class.forName(dbDriver);
			      dbCon = DriverManager.getConnection(dbURL);
			      Statement s = dbCon.createStatement();
			      String sql = "SELECT * FROM tbl_mitarbeiter WHERE " + option + "='" + option1 + "' AND " + tag + "='" + tag1 + "'";
			      System.out.println(sql);
			      ResultSet rs = s.executeQuery(sql);
			      String rt = "";
			      
			      while (rs.next()) {
			         rt = rt + "" + rs.getString("vorname") + " ";
			         rt = rt + "" + rs.getString("nachname") + "";
			      }  
			      
				    /*
				    ArrayList ar=new ArrayList(); 
						
					while(rs.next())
					{
						String a = rs.getString("vorname");  
						String b = rs.getString("nachname");
						String c = a + " " + b;   
						ar.add(c);	
					}*/
				
			      dbCon.close();
			      return rt;
			}
			 catch (Exception e) 
			 {
				System.out.println("Ein Fehler ist aufgetreten:");
				System.out.println(e.getMessage());
				return null;
			}
	   }
```

mfg


----------



## eRaaaa (18. Mai 2010)

Naja, gibt sicherlich mehrere Möglichkeiten,

Selbst eine Zufallszahl generieren:
z.B. [c]ar.get(new Random().nextInt(ar.size()))[/c]

oder


```
Collections.shuffle(ar);
System.out.println(ar.get(0));
```

..und bei google findet man sicherlich noch mehr Ideen


----------



## Landei (19. Mai 2010)

Häufig soll jeder Wert höchstens einmal "gezogen" werden können (etwa Lottozahlen), dann bietet sich 


```
Collections.shuffle(ar);
System.out.println(ar.remove(0));
```

an.


----------

