String mit String von Objekt im Stack vergleichen?

Xerxes20

Aktives Mitglied
Guten Tag,

ich habe folgendes Problem:


Folgender Stack wird genutz:

Java:
 Stack <Object> handys =new Stack <Object>();

Jetzt werden Objekte eingefügt:

Java:
Handy L=new Handy(123456,"Samsung","Galaxy S","Android","schwarz",8,8,1000,256); 

Handy K=new Handy(123456,"Apple","iPHONE 4","MacOs","schwarz",5,16,1000,256); 

Handy I=new Handy(123456,"Apple","iPHONE 3GS","MacOs","weiß",3,16,500,128); 

handys.push(I); 
handys.push(K); 
handys.push(L);

Und nun die Eingabe des Benutzers:

Java:
System.out.println("Welche marke?:"); 
String eingabe4= In.readWord(); 
if(eingabe4.equals(handys.elements()))

Hier soll bei Eingabe von IPHONE, die beiden IPHONE Objekte ausgegeben werden, aber wie mache ich das?
 
Warum verwendest du hier denn einen Stack ?
Ist für deinen Fall nicht eher eine List geeignet ? Denn auf nem Stack .elements() aufzurufen ist meiner Meinung auch nicht so die schönste Sache.
 
Auf eine Frage mit einer Gegenfrage zu antworten hilft nicht 🙂
Drehe die Frage doch mal um: Was spricht dafür?

Was ist überhaupt deine genaue Aufgabe? Wie sieht die Klasse Handy aus? Wieso benutzt du Object anstelle von Handy?

DU könntest einen Getter für die Beschreibung erstellen, über die Collection iterieren und schauen ob die Beschreibung den eingegeben String beinhaltet (z.B mit contains) und dann ausgeben. Aber etwas mehr an Infos würden sicherlich hier helfen
 
Also die Aufgabe besteht darin ein Lager zu erstellen mit Objekten (In dem Fall mit Handys).

Ich möchte aber nicht nur Handys Lagern sondern auch neue hinzufügen können. Das habe ich auch soweit geschafft nur fehlt mir halt das Filtern von Objekten.

Ich benutze Object weil der Inhalt von den Objekten aus Strings und Integern besteht (ist aber auch aus dem ersten Beitrag zu entnehmen oder?)
 
Ich möchte aber nicht nur Handys Lagern sondern auch neue hinzufügen können. Das habe ich auch soweit geschafft nur fehlt mir halt das Filtern von Objekten.

Dafür benutzt man dann aber eig. eher ein Interface oder eine abstrakte Klasse!

Xerxes20 hat gesagt.:
Ich benutze Object weil der Inhalt von den Objekten aus Strings und Integern besteht (ist aber auch aus dem ersten Beitrag zu entnehmen oder?)

Nö, du benutzt dort lediglich Handy-Objekte, die wiederum enthalten Integer und Strings das ist korrekt, das ist der Liste/Stack aber wurscht 🙂
Xerxes20 hat gesagt.:
Hallo,

meinet wegen kann ich auch eine Liste verwenden, aber dann hätte ich doch trotzdem das Problem mit dem Vergleichen des Strings.

Ich hatte ja schon eine Möglichkeit von mehreren beschrieben oben, was hast du daran nicht verstanden?
 
Hallo,

meinet wegen kann ich auch eine Liste verwenden, aber dann hätte ich doch trotzdem das Problem mit dem Vergleichen des Strings.

So vergleicht man Strings

Java:
	public static void main(String[] args) {
		String marke = "Nokia";
		if ("Samsung".equals(marke)) {
			System.out.println("true");
		} else {
			System.out.println("false");
		}
		if ("Nokia".equals(marke)) {
			System.out.println("true");
		} else {
			System.out.println("false");
		}
	}

Nein bitte nicht es ginge einfacher - ich musste mich doch so anstrengen :lol:
 
Java:
 for(Handy handy : handys){
         if(eingabe4.equals(handy.getMarke())){
            //mach was mit gefunden ...
         }         
      }

Wenn man eine Variable eingabe4 nennt weil es eingabe3 wahrscheinlich schon gibt.. ist das ein sehr sehr schlechtes Zeichen ;-)
 
@ANDI CH:

Tut mir leid aber dein Beitrag hilft mir bei dem Problem nicht. Es geht nicht direkt darum Strings zu vergleichen, das kann ich als Java Anfänger auch. Es geht darum einen eingegebenen String mit einem String (z.B. Marke) in einem Stack zu vergleichen und die ganzen Objekte, die diesen String beinhalten herauszufiltern.
 
du musst das manuell machen.
ungefähr mein code nur vor der schleife instanzierst du dir eine liste und in der for wenn gleich, fügst du das jeweilige objekt ein.. nach der schleife gibst du die liste zurück fertig... 5 zeiler...
das du einfach her gehst und sagst alle objekte einer collection bei der eine gewisse eigenschaft einen wert hat..... das geht leider nicht...
 
@ANDI CH:

Tut mir leid aber dein Beitrag hilft mir bei dem Problem nicht. Es geht nicht direkt darum Strings zu vergleichen, das kann ich als Java Anfänger auch. Es geht darum einen eingegebenen String mit einem String (z.B. Marke) in einem Stack zu vergleichen und die ganzen Objekte, die diesen String beinhalten herauszufiltern.

Ach so - und was soll denn deine Frage von oben ???:L???:L???:L

Hallo,

meinet wegen kann ich auch eine Liste verwenden, aber dann hätte ich doch trotzdem das Problem mit dem Vergleichen des Strings.

Langsam frage ich mich schon ein wenig:
Hol das Objekt (woher auch immer - es gibt sicher geeignetere Datenstrukturen als Stack)
Hol den String aus dem Objekt
Vergleiche diesen ....

Wie gesagt: Da steht ausdrücklich "Problem mit dem Vergleichen des Strings"

*Kopfschüttel*
 
Häh?

Ich weiß erhlich gesagt nicht was dein problem ist? Das Problem, das ich habe ist eindeutig im ersten Beitrag nachzuvollziehen bzw. auch am Topic.

Da steht: "Problem mit dem Vergleichen DES Strings" und nicht " Das Problem mit dem Vergleichen VON Strings".

Im ersten Fall kann man sich den Rest dazudenken, wenn man wie gesagt den ersten Beitrag lesen würde.
Das wird jetzt ziemlich Off-Topic. Ich möchte mich bei ARadauer bedanken, denn jetzt klappt es endlich, kann also geclosed werden 🙂
 

Neue Themen


Zurück
Oben