ArrayList in Array, dann sortieren

Status
Nicht offen für weitere Antworten.

maddy04

Mitglied
klingt nicht schwer, für mich ist es das aber...


daten ist ne ArrayList und soll sortiert werden, dazu wandel ich es in ein Array um, weils da ne sort-Funktion gibt. (oder gibts ne andere Möglichkeit die Arraylist zu sortieren?)

also mein code bis jetzt:
Code:
	public String findeErsten()	{
	    String[] d = new String[100];
	    daten.toArray(d);
	    Arrays.sort(d);
	    return d[0];
	   }// ende findeErsten

Ich wäre echt dankbar für helfende Leute...

Fehlermeldung:

beim compilieren keine, erst wenn ich auf die methode zugreife sagt er ArrayStoreException: null (in java.lang.System)

danke im Voraus...


cya
 

L-ectron-X

Gesperrter Benutzer
Code:
Collections.sort(daten);
Geht aber nur, wenn die Objekte in der ArrayList die compareTo()-Methode überschreiben.
Die String-Objekte und die Wrapperklassen der primitiven Datentypen machen das von Hause aus.

Die ArrayStoreException weist darauf hin, dass versucht wurde ein Objekt im Array zu speichern, der nicht dem Typ des Arrays entspricht. In deinem Fall eben null.
 

maddy04

Mitglied
L-ectron-X hat gesagt.:
Code:
Collections.sort(daten);
Geht aber nur, wenn die Objekte in der ArrayList die compareTo()-Methode überschreiben.
Die String-Objekte und die Wrapperklassen der primitiven Datentypen machen das von Hause aus.

Die ArrayStoreException weist darauf hin, dass versucht wurde ein Objekt im Array zu speichern, der nicht dem Typ des Arrays entspricht. In deinem Fall eben null.

was meinste du mit dem zweiten. das versteh ich nicht...
 
G

Guest

Gast
ArrayList kanst du mit java.util.Collections.sort(...) sortieren.
Du brauchst es nicht in ein Array zu konvertieren.
 

maddy04

Mitglied
und wie mach ich das in meinem Fall?

Code:
	public String findeErsten()	{
	    Collections.sort(daten);
	    return daten[0];
	   }// ende findeErsten

wie gebich das zurück? also ich will das erste Element nach dem Sortieren...
 

L-ectron-X

Gesperrter Benutzer
Code:
return (String)daten.get(0);

Die Exception habe ich oben erklärt.
 

maddy04

Mitglied
das hab ich auch grad rausgefunden gehabt, danke trotzdem

nun der nächste Fehler..

meine arraylist verwaltet eine klasse "Vornamen", da bekomm ich nun den nächsten Fehler...

ich geb ma ganzen Quellcode.

Klasse Verwaltung:
Code:
import java.util.*;
/**
 * Write a description of class Verwaltung here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Verwaltung
{
	// instance variables - replace the example below with your own
	private ArrayList daten;
	private String vorname;
	private String[] d;

	/**
	 * Constructor for objects of class Verwaltung
	 */
	public Verwaltung()	{
		daten = new ArrayList();
		vorname = "";
	}

	
	/**
	 * ....Methoden....
	 */
	public int anzahlNamen(){
	    return daten.size();
	   }
	
	public void setVorname(String vorname){
	   daten.add(new Vornamen(vorname));
	   }
	
	public String findeErsten()	{
	    String erster;
	    Collections.sort(daten);
	    erster = (String)daten.get(0);
	    return erster;
	   }// ende findeErsten
}

Klasse Vornamen:
Code:
/**
 * Write a description of class Vornamen here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Vornamen
{
	// instance variables - replace the example below with your own
	private String vn;

	/**
	 * Constructor for objects of class Vornamen
	 */
	public Vornamen(String vorname)
	{
		vn = vorname;
	}

	public String getVorname(){
	  return vn;
    } 
}

Fehler:
Code:
ClassCastException: Vornamen (in java.util.Arrays)
 

L-ectron-X

Gesperrter Benutzer
Code:
public String findeErsten() { 
       Collections.sort(daten); 
       Vorname vn = (Vorname)daten.get(0);
       return vn.getVorname();
}// ende findeErsten

Da dein String in einer Klasse Vorname steckt und dein Vorname-Objekt in der ArrayList gespeichert ist, musst du zunächst das Vorname-Objekt aus der ArrayList holen und dessen Methode getVorname() aufrufen, um einen String zurückgeben zu können.
 

L-ectron-X

Gesperrter Benutzer
So, wie ich es geschrieben habe, sollte es funktionieren.
Dazu bitte nochmals kontrollieren und ggf. die komplette Fehlermeldung posten.
Das Sortieren wird aber nicht funktioinieren, weil deine Klasse Vorname die Methode compareTo() nicht überschreibt.
 

maddy04

Mitglied
also gibts für mich keine möglichkeit ne objektsammlung zu sortieren ohne nicht nen eigenen algorithmus zu schreiben?

danke für deine antworten...

die Fehlermeldung war genau die selbe
 

L-ectron-X

Gesperrter Benutzer
Deine Objekte, die du vergleichen möchtest, müssen, so fern sie keine Wrappertypen für primitive Datentypen sind, die compareTo()-Methode überschreiben.
Also implementierst du das Interface java.lang.Comparable
Code:
public class Vornamen implements Comparable {
...

   public int compareTo(Object obj) {
     //dein Code
      return 0;
   }

...
in die Klasse.

Dazu kannst du mit der Forumsuche mehrere Ergebnisse finden.

Zur Fehlermeldung: Ich benötige die komplette Meldung, so wie sie der Compiler ausgibt.
 
B

bygones

Gast
mal ganz doof gefraget ? warum eine eigene Klasse Vorname ???

was steht in dieser Klasse drinnnen ? Ein String der den Vornamen speichert... mhm dafür ne eigene Klasse ist überflüssig

Code:
public String findeErsten()   {
       String erster;
       Collections.sort(daten);
       erster = (String)daten.get(0);
       return erster;
      }// ende findeErsten
das kann ja gar net gehen - in daten sind objekte des Typs Vorname und du holst dir n String raus.

Nochmal allgemein:

Damit Objekte sortierbar sind, muss die entsprechende Klasse das Interface Comparable implementieren (bzw. beim sortieren muss ein Comparator mitgegeben werden), damit Java weiß wie es die Objekte sortieren muss.
 

maddy04

Mitglied
Die Aufgabe lautet dass eine Sammlung von Objekten an Vornamen verwaltet werden sollen, man kann das ganze auch erweitern (nachname usw)
Wir haben "Objektsammlung" als ArrayList, die eine weitere Klasse verwaltet, kennengelernt. Daher verwende ich diese. Mir fehlt einfach eine andere Idee.
Sich kann man das bei nur einer Objekteigenschaft auch in ein Array schreiben, aber wie gesagt, es geht um Erweiterung.

Naja weiterhin ist es teil der Aufgabe den kleinsten (alphabetisch ersten) Namen zu finden. Daher meine Probleme...

Ich weiß leider nicht was das Interface Comparable macht und kann es daher auch nicht verwenden. Würdet ihr es mir bitte erklären? danke

schön, dass ihr euch um mich dummen kümmert ;)

cya
 
B

bygones

Gast
ok - dann würd ich einfach mal deine Klasse "Vorname" in "Person" oder so umschreiben, die nur einen String momentan hält (der Vorname).

Das Interface Comparable zwingt dich die Methode compareTo(Object o) zu implementieren. Diese Methode sagt Java ob das übergebene Objekt kleiner, gleich oder größer ist als ein anderes.

in deinem Fall den "kleinsten" Namen finden, da wir nur den Vornamen haben kann nur er beachtet werden. Er ist ein String und diese Klasse hat dankenswerderweiße schon die compareTo Methode implementiert.

D.h. du musst sozusagen nur das Sortieren an den String weitergeben

Code:
public class Person implements Comparable {
  // alles was die Klasse so braucht

  public int compareTo(Object o) {
     Person otherPerson = (Person)o;

    return vorname.compareTo(otherPerson.getVorname());
 }
}

hast du nun einen ArrayListe, die voll mit Objekten vom Typ Person ist kannst du per Collections.sort() die Liste sortieren und per get(0) dann das erste Element holen !
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
P Arraylist zu einem Array bringen mit Verschachtelung Java Basics - Anfänger-Themen 11
F Array in ArrayList ablegen Java Basics - Anfänger-Themen 3
K Variablen Ist es möglich eine ArrayList vom Typ Array zu erstellen? Java Basics - Anfänger-Themen 2
M Umwandlung von Array zu ArrayList Java Basics - Anfänger-Themen 7
K ArrayList<Double> --> double[] array Java Basics - Anfänger-Themen 5
S Variablen Array in ArrayList auf doppelte Einträge überprüfen Java Basics - Anfänger-Themen 4
H ArrayList mit char- Array befüllen Java Basics - Anfänger-Themen 12
M Zugriffsproblem auf (zweidimensionales) Array in einer ArrayList Java Basics - Anfänger-Themen 15
Schorchy Array vs. ArrayList Java Basics - Anfänger-Themen 37
V Unterschied Array & ArrayList Java Basics - Anfänger-Themen 13
M Integer-ArrayList to int-Array Java Basics - Anfänger-Themen 8
R ArrayList sehr viel schneller als Array? Java Basics - Anfänger-Themen 2
E ArrayList ist größer als Array Java Basics - Anfänger-Themen 9
T Array in einer Arraylist Java Basics - Anfänger-Themen 28
R Sehr einfache möglichkeit ArrayList oder Array zu initialisieren? Java Basics - Anfänger-Themen 8
S Array[HashMap][ArrayList][ArrayList] Java Basics - Anfänger-Themen 21
B Array to ArrayList Java Basics - Anfänger-Themen 6
M java.util.ArrayList to java.sql.Array Java Basics - Anfänger-Themen 4
J Datagrid mit dynamischen 2d array (arrayList) Java Basics - Anfänger-Themen 4
F Probleme mit Array bzw. ArrayList Java Basics - Anfänger-Themen 26
N Array in Arraylist Java Basics - Anfänger-Themen 4
2 Datentypen Kurze Schreibform bei ArrayList (Vs String Array) Java Basics - Anfänger-Themen 6
D Array? ArrayList? Vektor? ...? Java Basics - Anfänger-Themen 6
M ArrayList, String Array und IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
J array über generische arraylist Java Basics - Anfänger-Themen 7
D Array vs ArrayList Java Basics - Anfänger-Themen 2
K ArrayList in Array Speichern Java Basics - Anfänger-Themen 6
K ArrayList in double-Array umwandeln Java Basics - Anfänger-Themen 12
E Wie kann ich das in ArrayList abgespeicherte Array ausgeben? Java Basics - Anfänger-Themen 2
A [gelöst]Array mit ArrayList-Einträgen Java Basics - Anfänger-Themen 12
C Arraylist mit string array oder hashmap oder objekt? Java Basics - Anfänger-Themen 5
S ArrayList mit Array vergleichen Java Basics - Anfänger-Themen 2
S Array aus Arraylist Java Basics - Anfänger-Themen 6
P ArrayList in Array umwandeln Java Basics - Anfänger-Themen 6
kulturfenster Array in ArrayList umformen? Java Basics - Anfänger-Themen 6
J Array/ Arraylist Java Basics - Anfänger-Themen 3
I Array in ArrayList Java Basics - Anfänger-Themen 3
C Array von Vector oder ArrayList Objekten Java Basics - Anfänger-Themen 8
S Array vs. ArrayList Java Basics - Anfänger-Themen 10
M Allgemein Array in eine ArrayList überführen? Java Basics - Anfänger-Themen 7
krgewb ArrayList allgemein halten Java Basics - Anfänger-Themen 6
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
W ArrayList und toString Java Basics - Anfänger-Themen 17
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
M 2d ArrayList durchgehen Java Basics - Anfänger-Themen 2
Blkckroll45 Arraylist Java Basics - Anfänger-Themen 6
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
M ArrayList<TreeNode<T>> fortlaufende Nummerierung der Elemente Java Basics - Anfänger-Themen 5
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
F Werte in einer Arraylist Zählen Java Basics - Anfänger-Themen 2
F Erste Schritte Zahlenreihe von Arraylist in 3erBlöcke sortiert in neue Arraylist Java Basics - Anfänger-Themen 2
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
F Methode ArrayList mit Eingabewert Java Basics - Anfänger-Themen 2
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
thobren jtable arraylist Java Basics - Anfänger-Themen 12
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
Zeppi OOP ArrayList Java Basics - Anfänger-Themen 2
P ArrayList Java Basics - Anfänger-Themen 4
L ArrayList auf 4 Elemente begrenzen Java Basics - Anfänger-Themen 56
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
M For Schleife/ArrayList Java Basics - Anfänger-Themen 12
L Längstes Element einer ArrayList ausgeben Java Basics - Anfänger-Themen 9
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
M ArrayList in GUI ausgeben Java Basics - Anfänger-Themen 1
J Nur bestimmter Typ aus der ArrayList ausgeben. Java Basics - Anfänger-Themen 9
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
krgewb ArrayList von ArrayList Java Basics - Anfänger-Themen 2
R ArrayList Problem Java Basics - Anfänger-Themen 6
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben