Arraylist<String> füllen

schlumsch

Mitglied
Hallo,

mal eine kurze Frage zur Syntax...

wenn ich einer Arraylist<String> gleich mehrere Strings mit einem befehl übergeben will- wie mache ich das
So soll das dann in etwa aussehen:

Code:
ArrayList<String> strlst1 = new ArrayList<String>();
strlst1.add("bla1","bla2","bla3","bla4");

thx & lg
 
Wäre bissel umständlich glaub ich da für jede Parameter mehr eine neue Methode geschrieben werden müsste.

Aber du kannst dir ja selbst eine ArrayList2Klasse schreiben da kannst du ja eine eigene Methode machen und ein String array übergeben:

public void addAll(String[] param){
...
}


aufruf dann objarray.add(new String[]{"bla1","bla2","bla3"});


so hätte ich es gelöst aber eigendlich unnötig was du da erreichen willst
 
Java:
Arrays.asList("foo", "bar");

Gibt allerdings eine unmodifizierbare Liste zurück. D.h. nachträgliches Hinzufügen tut nicht.

Vielleicht noch ein Hinweis. Der Variablentyp sollte möglichst ein Interface (in deinem Fall also List) sein.

Gruß
Ollie
 
Dann doch bitte:

Java:
List<String> strlst1 = new ArrayList<String>(Arrays.asList("bla1","bla2","bla3","bla4"));

Da die fixe Liste die wir von Arrays.asList(T... a) bekommen eine Collection ist kann man sie auch gleich dem Konstruktor der ArrayList geben.

(von der Performance sollte aber die Version mit dem einzelnen hinzufügen schneller sein:))
 
Ha, ja da hätte ich doch glatt was vergessen, also beinahe.
Ich nutze JSF mit Richfaces. Nun habe ich die oben angesprochene Liste in meinem Bean liegen und möchte aus einem XHTML-File heraus darauf zugreifen. Das Problem ist nun der Zugriff auf die einzelnen Elemente. Mir ist schon klar, wie man auf Properties zugreift, nur ist ja meine Liste selbst das Property und ich brauche die Elemente.

Kann mir da evtl auch noch jemand einen Tipo geben?
Ich poste mal ein paar Auszüge aus meinem Code...

Place.java
Code:
...
public class Place {
....
	private ArrayList<String> bilderliste;
	
public Place() {
.....
	bilderliste = new ArrayList<String>();

	}	
	
public Place(int id, String name, double latitude, double longitude, String adresse, int sterne, double preis, double entfernung, String webseite, String bild ,PlaceFeatures features, String beschreibung, ArrayList<String> bilderliste ) {

		super();
		this.id = id;
		this.name = name;
		this.latitude = latitude;
		this.longitude = longitude;
		this.adresse = adresse;
		this.sterne = sterne;
		this.preis = preis;
		this.entfernung = entfernung;
		this.webseite = webseite;
		this.bild = bild;
		this.features = features;
		this.beschreibung = beschreibung;
		this.bilderliste = bilderliste;
				
	}
	


// -------------------------------------
//     getter & setter-Methoiden
//-----------------------------------------
			
.......		
			public ArrayList<String> getBilderliste() {
			return bilderliste;
		}


		public void setBilderliste(ArrayList<String> bilderliste) {
			this.bilderliste = bilderliste;
		}

}

Bean.java

Code:
.....

public class Bean {

	private int hotelSelection = 0;
	private int gesamt = 0;

	private ArrayList<Place> hotels;
	private ArrayList<Place> hotels_s;
	
...

	public Bean() {
		this.hotels = this.loadDataForMap();
.....
	}
		


//----------------------------
// ArrayListe der Hotels laden
//------------------------
	
	private ArrayList<Place> loadDataForMap() {
		ArrayList<Place> result = new ArrayList<Place>();
		
// Setzen der Booleans - Placefeatures		
		PlaceFeatures tmp1 = new PlaceFeatures(true, true, false, false, false, false, false, false, false, false, false, false, false);
.....
		
Setzen der Bilderliste
	ArrayList<String> strlst1 = new ArrayList<String>();
		strlst1.add("/jsf/pics/1.jpg");
		strlst1.add("/jsf/pics/h1b2.jpg");
		strlst1.add("/jsf/pics/h1b3.jpg");
...
		ArrayList<String> strlst2 = new ArrayList<String>();
		strlst2.add("/jsf/pics/1.jpg");
...		
		result.add(new Place (0,"Hotel Suhl 1", 50.604977, 10.710382, "Mäbendorf 1", 3, 35.67, 1.1, "www.bla.de", "/jsf/pics/1.jpg", tmp1, "beschreibungstext", strlst1));
		result.add(new Place (1,"Hotel Suhl 2", 50.604977, 10.710382, "Mäbendorf 1", 3, 35.67, 1.1, "www.bla.de", "/jsf/pics/1.jpg", tmp1, "beschreibungstext", strlst2));
		
.....	
		
		return result;		
	}
	
	/**

	//------------------------------------------------------------------------------------------------------------------
	// GETTER/SETTER
	//------------------------------------------------------------------------------------------------------------------
...
}

Nun ist die Frage, wie ich aus der xhtml auf die einzelnen Elöemente komme. Da hängts quasi. Der folgende Code geht nat. nicht,. Ziel soll es sein, alle Elemente der Liste nacheinander in einer Datatable als Images zu präsentieren...

Code:
<h:graphicImage value="#{Bean.selectedHotel.bilderliste(1)" />-
 
Zurück