Huhu, hab ein kleines Prob in meinem programm.
Er sortiert und löscht irgendwie falsch, bzw eher das sortieren funktioniert nicht wie es sollte.
hoffe ihr könnt mir helfen
Notiz.java
Code:
public class Notiz
{
//Attribute
private String betreff;
private String inhalt;
public Notiz(){
betreff = "";
inhalt = "";
}
public Notiz(String be, String in){
betreff = be;
inhalt = in;
}
public String getBetreff(){
return betreff;
}
public String getInhalt(){
return inhalt;
}
public void setBetreff(String be){
betreff = be;
}
public void setInhalt(String in){
inhalt = in;
}
public String textForm(){
return "Betreff: "+ betreff + "\nInhalt: "+ inhalt;
}
}
Notizbuch.java
Code:
public class Notizbuch implements Statistik
{
//Attribut
private Notiz[] buch;
public Notizbuch(Notiz notiz){
buch = new Notiz[1];
buch[0] = notiz;
}
/**
* Eine Methode die die vorhandene Notiz löscht
*
* @param notiz die Notiz die gelöscht werden soll
*/
public void loeschen(Notiz notiz){
Notiz[] temp = new Notiz[buch.length -1];
int neuIndex = 0;
for(int altIndex = 0; altIndex < buch.length; altIndex++){
if(!(buch[altIndex].getBetreff().equals(notiz.getBetreff())) && (buch[altIndex].getInhalt().equals(notiz.getInhalt()))) {
temp[neuIndex] = buch[altIndex];
neuIndex++;
}
}
buch = temp;
}
/**
* Sucht den Betreff in der Notiz
*
* @param be der gesuchte Betreff
*/
public Notiz suchen(String be){
for(int i = 0; i < buch.length; i++){
if(buch[i].getBetreff().equals(be)){
return buch[i];
}
}
return buch[0];
}
/**
* Eine Methode die den Betreff löscht
*
* @param be der Betreff der gelöscht werden soll
*/
public void loeschen(String be){
Notiz[] temp = new Notiz[buch.length -1];
int neuIndex = 0;
for(int altIndex = 0; altIndex < buch.length -1; altIndex++){
if(!(buch[altIndex].getBetreff().equals(be))){
temp[neuIndex] = buch[altIndex];
neuIndex++;
}
}
buch = temp;
}
/**
* Eine Methode die eine Notiz hinzufügt
*
* @param notiz die Notiz
*/
public void hinzufuegen(Notiz notiz) {
Notiz[] buffer = new Notiz[buch.length +1];
int i = 0;
for( ; i < buch.length; i++) {
buffer[i] = buch[i];
}
buffer[i] = notiz;
buch = buffer;
}
/**
* Eine Methode die die Notiz sotiert
*/
public void sortieren() {
for(int i = 0; i < buch.length -1; i++) {
if(buch[i].getBetreff().compareTo(buch[i+1].getBetreff()) < 0) {
Notiz buffer = buch[i];
buch[i] = buch[i+1];
buch[i+1] = buffer;
}
}
}
public String liste() {
String ausgabe = "";
for(int i=0; i < buch.length; i++) {
ausgabe += buch[i].getBetreff() + "\n" + buch[i].getInhalt();
ausgabe += "\n";
}
return ausgabe;
}
@Override
public double summe(){
return (double)buch.length;
}
@Override
public int anzahl(Object o){
int anz = 0;
for(int i = 0; i < buch.length;i++){
if(buch[i].equals((Notiz) o)){
anz++;
}
}
return anz;
}
}
Statistik.java
Code:
public interface Statistik {
/**
* Berechnet die Summe aller relevanten Werte der Klasse und gibt sie zurück.
*
* @return die Summe der relevanten Werte
*/
public double summe();
/**
* Berechnet die Anzahl von den Vorkommnissen des Parameters o innerhalb
* des Objekts und gibt sie zurück.
*
* @param o der Wert, dessen Vorkommen gezählt wird
* @return die Anzahl von o
*/
public int anzahl(Object o);
}
TestNotiz.java
Code:
import javax.swing.JOptionPane;
public class TestNotiz
{
public static void main(String []args) {
String betreff = JOptionPane.showInputDialog("Bitte schreiben Sie einen Betreff ein: ");
String inhalt = JOptionPane.showInputDialog("Bitte schreiben Sie einen Inhalt ein: ");
Notiz s1 = new Notiz(betreff, inhalt);
Notizbuch n1 = new Notizbuch(s1);
int anz = Integer.parseInt(JOptionPane.showInputDialog("Wie viele Notizen wollen Sie eingeben ?"));
for(int i=0; i < anz; i++){
betreff = JOptionPane.showInputDialog("Bitte schreiben Sie einen Betreff ein: ");
inhalt = JOptionPane.showInputDialog("Bitte schreiben Sie einen Inhalt ein: ");
s1.setBetreff(betreff);
s1.setInhalt(inhalt);
n1.hinzufuegen(s1);
}
betreff = JOptionPane.showInputDialog("Bitte geben Sie einen Betreff einer Notiz ein, welche Sie löschen wollen: ");
n1.loeschen(betreff);
betreff = JOptionPane.showInputDialog("Bitte geben Sie einen Betreff einer Notiz ein, welche Sie suchen wollen: ");
Notiz notiz = n1.suchen(betreff);
if(!(notiz == null)){
JOptionPane.showMessageDialog(null, notiz.textForm());
}
else{
JOptionPane.showMessageDialog(null, "Die Notiz wurde nicht gefunden!");
}
JOptionPane.showMessageDialog(null, n1.liste());
n1.sortieren();
JOptionPane.showMessageDialog(null, n1.liste());
int anzahl = n1.anzahl(s1);
JOptionPane.showMessageDialog(null, anzahl);
double summe = n1.summe();
JOptionPane.showMessageDialog(null, summe);
}
}
ich denk nicht das es dies das problem ist, da er witzigerweise immer die letzte eingegebene notiz speichert, und wenn ich die letzte lösche dann, und zb nach der 2 frage bekomm ich ein fehler beim suchen, sprich bei dieser stelle:
Code:
public Notiz suchen(String be){
for(int i = 0; i < buch.length; i++){
if(buch[i].getBetreff().equals(be)){ // <- hier
return buch[i];
}
}
return buch[0];
}
Das die letzte Eingabe abgespeichert wird liegt daran das du dem Notizbuch immer nur des gleiche Objekt übergiebst und nur den Betreff und den Inhalt änderst, sprich x mal das Selbe Objekt Vorhanden ist.
[JAVA Error] Could not create the java virtual machine 07/21/2013 - Technical Support - 10 Replies Schönen Abend!
Leider hat es sich aus einem unerfindlichen Grund ergeben, dass sobald ich die Minecraft.exe starten will die Errormeldung kommt.
Die Tips auf Minecraft.net habe ich schon ohne Erfolg befolgt.
Hoffe ihr könnt mir weiterhelfen...
Mein PC:
Java: ZahlenArray sortieren?! 10/14/2011 - General Coding - 12 Replies Hey E*pvpers.
Hab das Problem, dass ich mir ein Array ausgeben lasse mit dem ich dann später verschiedenen Sachen machen wollte ...
Wollte die Zahlen, die ausgegeben werden in dem Array jetzt sortieren. also von klein -> groß.
Bin mir nicht genau sicher wie man das macht, bzw irgendwann würd ich es warscheinlich hinkriegen, dann aber ziemlich umständlich und mit tausenden Schleifen.
Zahlen sortieren in C 02/10/2011 - General Coding - 13 Replies Bräuchte nochmal ein klein bisschen hilfe bei einer C aufgabe.
Ich muss eine zahlenfolge eingeben maximal 20zahlen und diese sortiert ausgeben, aber jeder durchlauf soll angezeigt werden, soweit so gut das programm läuft auch, jedoch hab ich 2 sachen die mich sehr stören
1. Man muss jetzt -1 eingeben wenn man keine zahlen mehr eingeben möchte, bekomme es aber irgendwie nur so hin, fände es besser wenn man am ende enter drückt und fertig ;)
2. Fänd ich es schöner wenn man nicht nach jeder...
taschen sortieren?! 01/14/2007 - World of Warcraft - 1 Replies tach.
soweit ich weiss gibt es einzellne addons wie bagsort die die taschen inhalte (also items) sortieren. leider funzt das nich mehr >_>
gibt es UIs oda andere addons, die sone funktion beinhalten?
kthnxbye :D