Zum Inhalt springen

java_anfaenger

Mitglieder
  • Gesamte Inhalte

    68
  • Benutzer seit

  • Letzter Besuch

Beiträge von java_anfaenger

  1.  

    vor 2 Minuten schrieb r4phi:

    Okay. Ich bin raus. Das verwirrt mich maximal. Vor allem verstehe ich den Einsatz der Map in diesem Kontext nicht. 
     

    Liste -> Map -> Map ausgeben. 
     

    Sinnvoll wäre:

    - Den String “splitten”

    - Damit dann ein Objekt von Student erzeugen

    - Objekte in eine Liste packen

    - Liste ausgeben 

    Wenn es eine Map sein soll

    - Den String “splitten”

    - Damit dann ein Objekt von Student erzeugen

    - Objekt in die Map packen wobei der Key die Matrikel Nummer ist

    - Ausgabe key + value

    Genau ... 

    Wenn es eine Map sein soll

    - Den String “splitten”

    - Damit dann ein Objekt von Student erzeugen

    - Objekt in die Map packen wobei der Key die Matrikel Nummer ist

    - Ausgabe key + value

     

    wie mache ich das ..

  2. vor 7 Minuten schrieb Whiz-zarD:

    Nein. Es ist doch inzwischen alles auf dem Tisch. Du musst doch nur noch alles zusammenfügen...

    
    public static void main(String[] args) {
      // Liste erzeugen
      List<Student> studentenDaten = new ArrayList<Student>();
      // Liste mit Werten füllen
      studentenDaten.Add(new Student(...));
      ...
      
      // Über die Liste iterieren
      for(Stundent student : studentenDaten) {
        // Student auf der Konsole ausgeben
        System.out.println(student.toString());
      }
    }

    Ich glaub, das ist schon für dich schwierig genug und ich würde erstmal die HashMap weglassen und erst mal versuchen, den Code zu verstehen.

    Den Code verstehe ich... ich würde es aber in eine HashMap umwandeln wollen ..

  3. vor 41 Minuten schrieb Whiz-zarD:

    Dann ist aber die Aufgabe falsch und ich glaube auch nicht, dass du verstehst, wofür man die Map benötigt.

    Es geht darum, dass man über einen Schlüssel den passenden Wert ermitteln kann. Den Schlüssel brauchst du aber hier gar nicht, da du nicht nach dem Schlüssel abfragst.

    Wenn du unbedingt eine HashMap haben möchtest und der Schlüssel die die Matrikelnummer sein soll, dann muss die HashMap so aussehen:

    
    HashMap<integer, Student>

    Anstatt einen String hast du nun einen Studenten als Wert.

     

    Sowas wie ..

     

     map initialisiern
    for(studentendaten durchlaufen) {
    student objekte erstellen

     map füllen
    }
    dann mit  for schleife die map ausgeben.
     

  4. vor 28 Minuten schrieb Whiz-zarD:

    Dann ist aber die Aufgabe falsch und ich glaube auch nicht, dass du verstehst, wofür man die Map benötigt.

    Es geht darum, dass man über einen Schlüssel den passenden Wert ermitteln kann. Den Schlüssel brauchst du aber hier gar nicht, da du nicht nach dem Schlüssel abfragst.

    Wenn du unbedingt eine HashMap haben möchtest und der Schlüssel die die Matrikelnummer sein soll, dann muss die HashMap so aussehen:

    
    HashMap<integer, Student>

    Anstatt einen String hast du nun einen Studenten als Wert.

     

    Das versuche ich aber die ganze Zeit zu erklären ... 

    Bei der HasMap muss denke ich zu erst aber String dann Student stehen.
    Wie kann ich denn jetzt zu den Daten iterieren, also die Lieblingsfächer von der Klasse Daten holen ..

  5. vor 7 Minuten schrieb Whiz-zarD:

    Was hast du denn mit der Map vor? Die brauchst du nicht.

    Mach einfach eine Liste von Studenten anstatt eine Liste von Strings. So schwer ist es doch nicht mehr.

    
    List<Student> studentenDaten = new ArrayList<Student>();
    studentenDaten.add(new Student("Test", 111111, "Fach1"));
    ...

     

    Die Übung für mich ist ja, dass ich mich mit der Map vertrauter mache ... 

  6. vor 12 Minuten schrieb Whiz-zarD:

    Jetzt kannst du doch eine Liste von Studenten erstellen, anstatt eine Liste von String. Ein Student erzeugst du dann mit dem new-Operator:

    
    new Student("Test", 111111, "Fach1");

    Dann kannst du einfach über die Liste iterieren und pro Student die toString()-Methode aufrufen:

    
    for(Student student : studentenDaten) {
      System.out.println(student.ToString());
    }
    	

     

    Und die Map lautet so ?

     

    Map<String,Integer> studentenDaten;
    
    Map<String, Integer> datenholen = new HashMap<String, Integer>(studentenDaten);

    Weil dann sagt das System..

    Can only iterate over an array or an instance of java.lang.
     Iterable

     

  7. vor 52 Minuten schrieb Whiz-zarD:

    String ist einfach nur ein Text..

    Wenn du die Daten mit Semikolon getrennt in ein String packst, wie willst du denn auf die einzelnen Daten zugreifen? Das ist genau deine Frage und die Antwort ist, dass es nicht geht, ohne den String interpretieren zu müssen. D.h. man müsste erstmal aus dem String ein String-Array zu bauen und dann aus diesem Array den String holen, der sich an der jeweiligen Position befindet, wo wir auch unsere Daten vermuten. So macht man das aber nicht. Man entwickelt Klassen für die Daten. Arbeite am besten ein Java-Tutorial durch, da ich das Gefühl habe, dass du einfach von Softwareentwicklung noch nichts verstehst. Dir ist offenbar nicht mal klar, was ein Datentyp ist. Also die elementarsten Grundlagen der Informatik fehlen.

    So anscheinend ist mir nicht klar was ein Datentyp ist. 

     

    public class Student {
    
    	private String name = "";
    	private int matrikelnummer = 0;
    	private String lieblingsFach = "";
    	
    	public Student(String name, int matrikelnummer, String lieblingsFach) {
    		this.name = name;
    		this.matrikelnummer = matrikelnummer;
    		this.lieblingsFach = lieblingsFach;
    	}
    	
    	public String getLieblingsfach() {
    		return lieblingsFach;
    	}
    	
    	public int getMatrikelnummer() {
    		return matrikelnummer;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setLieblingsfach(String lieblingsFach) {
    		this.lieblingsFach = lieblingsFach;
    	}
    
    	public void setMatrikelnummer(int matrikelnummer) {
    		this.matrikelnummer = matrikelnummer;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String toString() {
    		String returnString = name + " (" + matrikelnummer + "), Lieblingsfach: " + lieblingsFach;		
    		return returnString;
    	}
    }

    Was nun ? wie gehe ich weiter voran ?

  8. Gerade eben schrieb Whiz-zarD:

    Weil es eine Liste von Strings ist ... Ist dir klar, was ein String ist? Das ist einfach nur Text.

    Ich könnte auch folgendes schreiben:

    
    studentenDaten.add("Holla Die Weldfee");
    studentenDaten.add("Übel übel, sprach der Dübel.");

     

     

    Genau wenn man das schreiben kann wieso kann ich nicht über Strings iterieren ? 

    Ich möchte den ersten Datensatz bezüglich Lieblingsfächer holen. Ich möchte dafür Student-Objekte erzeugen. Die sind ja in einer List ich möchte eine Map erzeugen Mit dem Schlüssel:

    Matrikelnummer - > Wert: Student-Objekt

     

  9. vor 3 Minuten schrieb Whiz-zarD:

    Damit kannst du aber nichts anfangen...

    Versuchst du eigentlich überhaupt zu verstehen, was hier geschrieben wird? Das sieht für mich nicht danach aus, denn exakt die selbe Frage in diesem Thread hast du schon im anderen Thread gestellt...

    Wieso kann ich denn damit nichts anfangen ? .. Also was meinst du mit ich kann damit nichts anfangen es ist doch eine Liste voller Daten warum kann ich keine Map erstellen in welcher ich über die Daten iteriere und bestimmtes outputen lasse

  10. vor einer Stunde schrieb r4phi:

    Okay, aber wofür dann die (Hash)Map?
    Du möchtest doch eigentlich nur eine Liste von Datensätzen haben.
    Eine Liste von Studenten. Dann möchtest du von jedem Studenten das Lieblingsfach ausgeben.?

     

    
    class Student {
        public String name;
        public String lieblingsfach;
        public String irgendEineNummer;
    
        public Student(String name, String lieblingsfach, String irgendEineNummer) {
            this.name = name;
            this.lieblingsfach = lieblingsfach;
            this.irgendEineNummer = irgendEineNummer;
        }
    
        public String getName() {
            return this.name;
        }
    
        public String getLieblingsfach() {
            return this.lieblingsfach;
        }
    
        public String getIrgendEineNummer() {
            return this.irgendEineNummer;
        }
    }
    
    class Foo {
        private List<Student> gievStudentenPlx() {
            return List.of(
                new Student("Peter", "Lieblingsfach", "123456"),
                new Student("Peter2", "Lieblingsfach2", "123456"),
                new Student("Peter3", "Lieblingsfach3", "123456"),
                new Student("Peter5", "Lieblingsfach4", "123456"),
                new Student("Peter6", "Lieblingsfach5", "123456")
                );
        }
    
        private void zeigeFachOnTehConsol() {
    
            final List<Student> currenStudentZ = gievStudentenPlx();
            currenStudentZ.stream().map(Student::getLieblingsfach).forEach(System.out::println);
            // or
            currenStudentZ.forEach(currenStudent -> System.out.println(currenStudent.getLieblingsfach()));
        }
    }


    Damit wird dir auch nicht geholfen sein.
    Allerdings sind deine Ausführungen auch ziemlich unspezifisch.

    public class main {
    	
    	public static void main(String[] args) {
    		// Name ; Matrikelnummer ; Lieblingsfach
    		Map<String, Integer> studentenDatenHolen = ...;
    		
    	
    		Map<String, Integer> datenholen = new HashMap<String, Integer>(studentenDatenHolen);
    		
    		
    		System.out.println(studentenDatenHolen);
    		Set<String> Lieblingsfach = datenholen.keySet();
    		for(String fach : Lieblingsfach) {
    			System.out.println(fach + "-->" + datenholen.get(fach));
    		}
    	}
    	
    }

    Habe so etwas kreiert doch leider funktioniert es nicht ... 

    Nochmals die Datenklasse sieht so aus..:

    public static List<String> studentenDatenHolen(){
    		List<String> studentenDaten = new ArrayList<String>();
    		// Format:
    		// Name ; Matrikelnummer ; Lieblingsfach
    		
    		studentenDaten.add("Test;111111:Fach1");
    		studentenDaten.add("Test2;222222;Fach2");
    		studentenDaten.add("Test3;333333;Fach3");
    		studentenDaten.add("Test4;444444;Fach4");
    		studentenDaten.add("Test5;555555;Fach5");

     

  11. vor 14 Minuten schrieb r4phi:

    Okay, aber wofür dann die (Hash)Map?
    Du möchtest doch eigentlich nur eine Liste von Datensätzen haben.
    Eine Liste von Studenten. Dann möchtest du von jedem Studenten das Lieblingsfach ausgeben.?

     

    
    class Student {
        public String name;
        public String lieblingsfach;
        public String irgendEineNummer;
    
        public Student(String name, String lieblingsfach, String irgendEineNummer) {
            this.name = name;
            this.lieblingsfach = lieblingsfach;
            this.irgendEineNummer = irgendEineNummer;
        }
    
        public String getName() {
            return this.name;
        }
    
        public String getLieblingsfach() {
            return this.lieblingsfach;
        }
    
        public String getIrgendEineNummer() {
            return this.irgendEineNummer;
        }
    }
    
    class Foo {
        private List<Student> gievStudentenPlx() {
            return List.of(
                new Student("Peter", "Lieblingsfach", "123456"),
                new Student("Peter2", "Lieblingsfach2", "123456"),
                new Student("Peter3", "Lieblingsfach3", "123456"),
                new Student("Peter5", "Lieblingsfach4", "123456"),
                new Student("Peter6", "Lieblingsfach5", "123456")
                );
        }
    
        private void zeigeFachOnTehConsol() {
    
            final List<Student> currenStudentZ = gievStudentenPlx();
            currenStudentZ.stream().map(Student::getLieblingsfach).forEach(System.out::println);
            // or
            currenStudentZ.forEach(currenStudent -> System.out.println(currenStudent.getLieblingsfach()));
        }
    }


    Damit wird dir auch nicht geholfen sein.
    Allerdings sind deine Ausführungen auch ziemlich unspezifisch.

    Aber die Klasse foo schreibt ja neue Studenten rein .. 
    Ich meinte ja es gibt eine Klasse mit Daten von Studenten welche schon das Format beinhaltet. Ich müsste sozusagen in der Main nur drauf zu greifen und die Studenten ausgeben

  12. vor einer Stunde schrieb r4phi:

    In meinem Beispiel wäre das erst mal ein Eintrag in der Map. Eine Ausgabe findet noch nicht statt.

    Dann müsstest du in deinem Beispiel mit der Stream Api über das Entry set gehen....

    
    myMap.entrySet()
            .forEach(x -> log.debug("{} {}",x.getKey(), x.getValue()));

    Wobei es sicherlich sinnvoller wäre uns zu nennen wo du gerne hin möchtest und das lässt sich dann po a po aufarbeiten.

    Also nochmals .. 
    Ich habe eine Klasse in welche Daten drin sind .. 

    ich möchte in der Main eine Map erzeugen welche den Schlüsse: Matrikelnummer und den Wert Objekt annimmt. 

    Also irgendwie möchte ich das Lieblingsfach ausgeben. Ich könnte es ja in ein String speichern ..

  13. vor 4 Minuten schrieb lessbess:

    Deine Datenklasse macht so keinen Sinn, das ist keine Klasse und ist auch syntaktisch nicht in Ordnung. Wenn du Studentenobjekte haben willst, musst du auch eine Klasse Student erstellen und damit dann Objekte erzeugen. Bei dir sieht das ja aktuell so aus als wolltest du die Studentendaten einfach in einen String packen.

    Auf die Daten einer anderen Klasse greifst du über eine Schnittstelle zu, die diese Klasse anbieten muss (z.B. getter).

    Am besten solltest du erst mal die Basics ansehen: was ist eine Klasse usw. usf.

    Ja, so wollte ich es auch machen. 

  14. vor 1 Minute schrieb r4phi:

    Grüße dich,

    Um dich richtig zu verstehen:
    Du möchtest eine Map<K, V> erzeugen die Matrikelnummer als Schlüssel und das Studentenobjekt als Wert enthält?

    
    final Map<String> myMap = new HashMap();
    myMap.put(99999, "Test uno;999999;fach I";

    Ein anderer Punkt:
    Du könntest deinen Studenten auch als Klasse modelieren.
    Aktuell ist dieser ja "nur" ein String.

    Danke erstmal. Das wäre aber hierbei nur ein einzelner Output stimmt das ? 

    Was wäre wenn es etliche Daten gibt und ich nur die Matrikelnummer und das Lieblingsfach raus fischen möchte.

  15. Guten Tag,

     

    ich würde gerne wissen, wie ich in meiner Main auf diese Datenzeile zugreifen kann.

    Ich würde gerne eine Map erzeugen in der Main mit Studentobjekten welche die Lieblingsfächer anzeigt.

     

    Ich habe kein schimmer, wie ich auf die Daten von einer anderen Klassen zugreife und wie ich so eine Map erstelle mit dem Schlüssel : Matrikelnummer und dem Wert : Studentobjekt

     

     

    Die Daten Klasse würde sagen wir mal so aussehen:

    public static List<String> datenstudi(){
    
            List<String> studidaten = new ArrayList<String>();
    
            // Format:
    
            // Name ; Matrikelnummer ; Lieblingsfach
    
            
    
            studidaten.add("Test uno;999999;fach I");
    
            studidaten.add("Horst Lied;111111;fach II");

     

    Wäre die Main am Anfang so ?:

    import java.util.HashMap;
    
    import java.util.Map;
    
    
    
    public class main {
    
        
    
        public static void main(String[] args) {
    
            Map<Integer, String> map = new HashMap<Integer, String>();
    
            
    
            System.out.println("");
    
        }
    
        
    
    }

     

     

  16. So hi erstmal.. ich habe folgendes Problem. Ich möchte die Liste in array.class in meiner main nutzen. Sagen wir ich möchte die Preise alle bücher zusammen adieren, wie könnte ich aus dem Array welches ich habe die Preise herauslesen und addieren?

    Das Array ist so kategorisiert:
    Book: title;booktype;price;edition 
    ebook: title;booktype;price;edition;version 
    audiobook: title;booktype;price;edition;mode

    Ich hoffe jemand kann mir paar Tipps geben. Danke

     

    array.class:
    import java.util.ArrayList;
    import java.util.List;
    public static List<String> selledbooks(){
            List<String> booksdata = new ArrayList<String>();
    
            booksdata.add("booktitle1;ebook;19.99;2020;3");
            booksdata.add("booktitle2;ebook;4.99;2020;3");
            booksdata.add("booktitle3;audiobook;22.99;2016");
            booksdata.add("booktitle4;ebook;4.99;2020;streaming");
      
            return booksdata;
    }
    
    main.class:
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class Main {
        public static void main(String[] args) {
            List<String> selledbooks = new ArrayList<String>();
            
            }
    
        private static void booksdata() {
            System.out.println(Daten.selledbooks());
            
        }

     

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...