Termine sortieren und im TreeSet speichern

hollesepp

Grünschnabel
Hallo an alle!
Ich stehe grade vor einem kleinen Problem. Ich möchte Kalendereinträge (Termine) in einem TreeSet speichern (Termine dürfen nicht doppelt vorkommen) und dabei habe ich als Anfänger ein paar Problemchen :

Code:
package termin;

import java.util.*;

public class Termin implements Comparable<Termin>{   //Irgendwas mache ich hier falsch - Eclipse sagt ich soll Methode compareTo implementieren?!

	// Variablen die einen Termin beschrieben 
	String ort;
	String betreff;			
	int dauerStunden;					
	int dauerMinuten;				
	GregorianCalendar termin = new GregorianCalendar();		

	// Getter und Setter Methoden 
	public int getDauerStunden() {
		return dauerStunden;
	}
	public void setDauerStunden(int dauerStunden) {
		this.dauerStunden = dauerStunden;
	}
	public int getDauerMinuten() {
		return dauerMinuten;
	}
	public void setDauerMinuten(int dauerMinuten) {
		this.dauerMinuten = dauerMinuten;
	}
	public String getOrt() {
		return ort;
	}
	public void setOrt(String ort) {
		this.ort = ort;
	}
	public String getBetreff() {
		return betreff;
	}
	public void setBetreff(String betreff) {
		this.betreff = betreff;
	}

	// Eigene getter und setter methode für die Variable termin
	public void datumSetzen (int tag, int monat, int jahr , int stunde , int minute)
	{
		this.termin.set(Calendar.YEAR, jahr);
		this.termin.set(Calendar.MONTH, monat);
		this.termin.set(Calendar.DAY_OF_MONTH, tag);
		this.termin.set(Calendar.HOUR_OF_DAY, stunde);
		this.termin.set(Calendar.MINUTE, minute);
		this.termin.set(Calendar.SECOND, 0);
	}
	
	public Calendar datumHolen()
	{
		return termin;
	}	
	//Hier bin ich mir nicht so sicher, ob das richtig implementiert ist.
	public int compareTo(Termin vgltermin){
		if(termin < vgltermin.datumHolen()) return -1;
		if(termin > vgltermin.datumHolen()) return 1;
	}
}

Desweiteren habe ich eine andere Klasse (anderes Packet) für das TreeSet:
Die Klasse Termin wird importiert und die Termine sollen in dieser Klasse bearbeitet werden. (Neuer Termin / Ändern / Löschen usw....)

Code:
package operationen;

import termin.Termin;
import java.util.*;

public class Terminoperatioenen {
	
	public void terminAnlegen (int stunde, int minute , int tag ,
								int monat ,	int jahr , String betreff,
								String ort,	int dStunde , int dMinute) {
		
	// Neues Terminobjekt erstellen
	Termin neuTermin = new Termin();
	
	// Übergebene Daten dem neuen Termin zuordnen
	neuTermin.datumSetzen(tag, monat, jahr, stunde, minute)	;
	neuTermin.setBetreff(betreff);
	neuTermin.setOrt(ort);
	neuTermin.setDauerMinuten(dMinute);
	neuTermin.setDauerStunden(dStunde);
	
	//speichern(neuTermin); //im TreeSet sortiert abspeichern
	
	//Exceptions 
		
	}
	
	//Hier Termin sortiert speichern mit TreeSet
	public void speichern(Termin termin){
		Set set = new TreeSet();          //Kann man das hier so machen, oder
		set.add(termin);                      //fehlt da noch was. Ich bin ein bischen ratlos...
	}
}

Ich bin als Newbie für alle Kommentare sehr dankbar da ich mich erst noch in die Thematik mit dem Vergleichen (Comparable/Comparator) und der ganzen TreeSet-Geschichte einarbeiten muss.

Thx!
hollesepp
 
Java:
//Hier bin ich mir nicht so sicher, ob das richtig implementiert ist.
	public int compareTo(Termin vgltermin){
		if(termin < vgltermin.datumHolen()) return -1;
		if(termin > vgltermin.datumHolen()) return 1;
	}

Das dürfte nicht mal kompilieren.

Java:
	public int compareTo(Termin vgltermin){
		return this.datumHole().compareTo(vglTermin.datumHolen());
	}
 
Vorab vielen Dank für die Kommentare,

also mir geht es konkret darum zu wissen, wie man Termine in einem TreeSet speichern kann. Dazu muss ich sie, soweit ich das verstanden habe, "vergleichbar" machen, da Elemente im TreeSet sortiert gespeichert werden ?! Ich habe leider keine Ahnung wie ich realisieren soll, dass z.B. meine Termine aufsteigend (tt.mm.yyyy) im TreeSet gespeichert werden und welche "Vorbereitung" dazu in der Termin-Klasse nötig ist.

Hoffe, das es die Problematik jetzt besser trifft ;-)

Gruß
hollesepp
 
Hi Zeja,

ja danke für die Antwort. Mein Kommentar war auf die Aussage von Matze from Hwl bezogen. Und in der Termin-Klasse habe ich immer noch so viele Fehlermeldungen bezüglich der compareTo-Geschichte.

Code:
public class Termin implements Comparable<Termin>{

Eclipse sagt mir da schon ganz am Anfang: Class must implement the inherited abstract method Comparable.compareTo(Object)

Gruß
hollesepp
 

Neue Beiträge

Zurück