Wer kann mir ein bisserl helfen?!

cfm75

Grünschnabel
Hallo liebe Community,

zuerst möchte ich allen hier ganz lieb "Hallo" sagen und mich kurz vorstellen, weil ich hier neu bin. Bin gerade dabei, mich mit Java im Rahmen meines Studiums zu beschäftigen, aber ganz ehrlich: ich verstehe es einfach nicht.
Vielleicht kann mir hier jemand auf die Sprünge helfen, damit ich etwas "Licht ans Fahrrad" kriege.... Hab da ein paar Hausaufgaben, zu denen ich momentan leider keine coolen Antworten parat habe. Für jeden Tipp bin ich dankbar!

Meine Fragen:
Wie schreibe ich einen Algorithmus, der ein Array
mit den zahlen 1-100 füllt und das Array in umgekehrter reihenfolge ausgibt?

Wie hole ich drei "Personen" aus einer Arraylist?
(irgendwas mit casten?!)

Warum muss ich strings mit equals vergleichen?

Was ist der Unterschied zwischen modalem und non-modalem dialog?


LG, Carsten
PS: Freue mich auf eure Unterstützung!
 
Warum muss ich strings mit equals vergleichen?
Java arbeitet bei Objekten mit Referenzen. Wenn beide Strings Konstanten sind funktioniert ein ==, aber wenn nun eines eine Variable ist funktioniert das nicht, weil die Adressen verschiedenen sind.
Also immer
string1.equals(string2)
oder auch
string1.equalsIgnoreCase(string2)
 
Zu 1.
Das ist ja eine ganze Aufgabe. In Worten mal erklärt, du erstellst dir ein Array, so groß wie nötig. Läufst mit einer Schleife über das Array und schreibst die Zahlen-Werte rein. Anschließend läufst du von hinten nach vorne über das Array und gibst dann nur noch die Felder aus.

Zu 2.
Ich schätze mal, dass du eine befüllte ArrayList hast. Wenn das so ist, kannst du mit get(), Objecte aus der Liste holen. Wenn diese dann von der Klasse Person sind, kannst du diese Objecte auch auf Person casten.

Zu 3.
@zuckerbrini
Ich verstehe jetzt nicht, warum das bei Konstanten funktionieren soll.

Ein String ist ein Object. Bei allen Objecten verhält es sich so, wenn man mit == testet, wird geprüft, ob es sich um das gleiche Object handelt, mit equals wird der Inhalt des Objects geprüft. Das wäre bei einem String der Text den der String enthält.

Zu 4.
Ein modaler Dialog lässt keinen Zugriff auf das Parent-Fenster zu, bis er geschlossen wird.

MFG

Sascha
 
Ich verstehe jetzt nicht, warum das bei Konstanten funktionieren soll.

Ein String ist ein Object. Bei allen Objecten verhält es sich so, wenn man mit == testet, wird geprüft, ob es sich um das gleiche Object handelt, mit equals wird der Inhalt des Objects geprüft. Das wäre bei einem String der Text den der String enthält.

MFG

Sascha

Die Sprachspezifikation gibt es so vor.

http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#100960

3.10.5 String Literals

[...] String objects have a constant value. String literals-or, more generally, strings that are the values of constant expressions (§15.28)-are "interned" so as to share unique instances, using the method String.intern.

Thus, the test program consisting of the compilation unit (§7.3):

Code:
package testPackage;
class Test {
	public static void main(String[] args) {
		String hello = "Hello", lo = "lo";
		System.out.print((hello == "Hello") + " ");
		System.out.print((Other.hello == hello) + " ");
		System.out.print((other.Other.hello == hello) + " ");
		System.out.print((hello == ("Hel"+"lo")) + " ");
		System.out.print((hello == ("Hel"+lo)) + " ");
		System.out.println(hello == ("Hel"+lo).intern());
	}
}
class Other { static String hello = "Hello"; }

and the compilation unit:

Code:
package other;
public class Other { static String hello = "Hello"; }

produces the output:

true true true true false true

This example illustrates six points:

  • Literal strings within the same class (§8) in the same package (§7) represent references to the same String object (§4.3.1).
  • Literal strings within different classes in the same package represent references to the same String object.
  • Literal strings within different classes in different packages likewise represent references to the same String object.
  • Strings computed by constant expressions (§15.28) are computed at compile time and then treated as if they were literals.
  • Strings computed at run time are newly created and therefore distinct.
  • The result of explicitly interning a computed string is the same string as any pre-existing literal string with the same contents.
 
Wie schreibe ich einen Algorithmus, der ein Array
mit den zahlen 1-100 füllt und das Array in umgekehrter reihenfolge ausgibt?
Stichwort "For-Schleife".

Wie hole ich drei "Personen" aus einer Arraylist?
(irgendwas mit casten?!)
Wirf einen Blick in die API-Dokumentation der Klasse ArrayList.

Was ist der Unterschied zwischen modalem und non-modalem dialog?
:google:
 
Zuletzt bearbeitet:
Hab mich vieeleicht ein bisschen ungeschickt ausgedrückt...

Mit == kannst du vergleichen ob es sich um das gleiche Objekt handelt. Also == ergibt true wenn es sich um das gleiche handelt und nicht wenn der Inhalt gleich ist
 

Neue Beiträge

Zurück