Multiplikation bei Generics

bRainLaG

Aktives Mitglied
Nachdem ich mich ja erst über die Multiplikation innerhalb einer Liste bewandert habe, habe ich nun das Problem, das ich aufgrund dessen das mein Wert generisch gewählt ist, die Multiplikationszeile nicht funktioniert.
Hat da jemand ne Ahnung wie ich das verändern muss, damit das optimal funktioniert.

Node class:

Java:
public class LinkedList<T>  implements Iterator<T>, Serializable	{
	
	
	private class Node<T> {
		
		Node<T> next;
		T value;
		
		Node(){
			
		}
		Node(T value, Node<T> next){
			
			this.value = value;
			this.next = next;
		}
	}

und meine Fold Methode:

Java:
void fold (){
		
		Node ptr = head;
		Node next = ptr.next;
		
		double produkt = 1;
		for(;;){
		if (ptr != null) {
		  produkt = produkt * ptr.value;
		  ptr = next;
		}
		else System.out.print(produkt);
		}
	}
 

faetzminator

Gesperrter Benutzer
Am einfachsten sollte T noch von irgendwas ableiten, was eine Methode zur Verfügung stellt, welche die Daten als [c]double[/c] zurückgeben. Dazu kannst du T entweder von Number (Java Platform SE 6) ([c]doubleValue()[/c]) oder von einem eigenen Interface ableiten lassen. Der Codeausschnitt könnte dann z.B. [c]LinkedList<T extends Number> implements Iterator<T extends Number>[/c] und [c]Node<T extends Number>[/c] lauten.
 

fastjack

Top Contributor
Java:
 produkt = produkt * ptr.value;

ptr.value ist vom Type T, d.h. Object.

Multiplikation funktioniert nicht mit Object. Ich würde versuchen die Funktion in fold irgendwie herauszulösen (abstrakt gestalten etc.), da fold denke ich generell eine Funktion auf die Elemente ausführen soll. Diese Funktion muss dann speziell implementiert werden.
 

bRainLaG

Aktives Mitglied
was wäre wenn ich mir irgendwie eine zusätzlichen Typ erschaffe zB V kann ich diesen, dann irgendwie von bestimmten Typen machen, also mehreren beispielsweise long double int?
 

faetzminator

Gesperrter Benutzer
Der Typ kann nicht primitiv sein, also muss er vom Typen Integer, Float, Double, ... sein. Und genau diese Typen erben vom von mir verlinkten Typen Number.
 

fastjack

Top Contributor
Muß fold nicht eigentlich so sein, daß es eine Funktion auf die Elemente einer Liste abbildet. ? Also so : fold(Fucntion f) ?
 

Wladimir

Mitglied
Ich würde für den fall eine statische Method einführen welche für Listen des specifischen Typs spezifische Operationen ausführt. Der Rest der LinkedList kann gleich bleiben, nur muss die Klasse Node noch auf static gesetzt werden.

Java:
	public static double fold(LinkedList<Double> list) {
		Node<Double> ptr = list.head;
		double produkt = 1;
		while (ptr != null) {
			produkt = produkt * ptr.value;
			ptr = ptr.next;
		}
		return produkt;
	}
 
Zuletzt bearbeitet:

Landei

Top Contributor
Ich würde eine generische fold-Funktion schreiben, und ein passendes Operator-Objekt mitliefern:
Java:
    public interface BinaryOp<T>{
        T eval(T a, T b);
    } 

    //für allgemeine Number-Listen:
    public class NumberMultiplicator extends BinaryOp<Number> {
         public Number eval(Number a, Number b) { return a.doubleValue() * b.doubleValue(); }    
    }

    //oder besser das, wenn du schon eine Double-Liste hast:
    public class DoubleMultiplicator extends BinaryOp<Double> {
         public Double eval(Double a, Double b) { return a * b; }    
    }

    public static <T> T fold(LinkedList<? extends T> list, Op<T> op) {
        Node<T> ptr = list.head;
        T result = null;
        while (ptr != null) {
            result = (result == null) ? ptr.value : op.eval(result, ptr.value);
            ptr = ptr.next;
        }
        return result;
    }

   ...
   LinkedList<Double> list = ...
   Double product = fold(list, new DoubleMultiplicator());
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
S Multiplikation von zwei Labels Java Basics - Anfänger-Themen 7
F Matrix Multiplikation Java Basics - Anfänger-Themen 3
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
O Erstes Programm: Matrizen Multiplikation Java Basics - Anfänger-Themen 10
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
D Methoden Matrix Multiplikation Java Basics - Anfänger-Themen 27
J Funktionsaufrufe Multiplikation von Arrays Java Basics - Anfänger-Themen 3
Joker4632 Klassen BigDecimal Multiplikation liefert nicht erwarteten Wert Java Basics - Anfänger-Themen 6
TomatenBrot447 Adapter für eine optimierte Multiplikation Java Basics - Anfänger-Themen 5
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
P Variablen Negatives Ergebnis bei Multiplikation von großen Zahlen Java Basics - Anfänger-Themen 2
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
K Seltsames Ergebnis in Netbeans bei einfacher Multiplikation Java Basics - Anfänger-Themen 5
T Operatoren Multiplikation nur mit Addition, Subtraktion und Vergleich Java Basics - Anfänger-Themen 29
S Multiplikation durch Addition, Subtraktion und Vergleich von Zahlen Java Basics - Anfänger-Themen 14
V Vor jeder Multiplikation den linken Multiplikator abrunden Java Basics - Anfänger-Themen 4
M Matrix Matrix Multiplikation Java Basics - Anfänger-Themen 6
W Multiplikation mit rekursivem Aufruf Java Basics - Anfänger-Themen 17
S Multiplikation von großen Zahlen, ohne BigInt uä Java Basics - Anfänger-Themen 7
F.S.WhiTeY Multiplikation nach der Schulmethode Java Basics - Anfänger-Themen 6
K Matrizen Multiplikation Java Basics - Anfänger-Themen 3
G Multiplikation falsches Ergebnis Java Basics - Anfänger-Themen 5
K double Multiplikation Java Basics - Anfänger-Themen 2
K einfache Multiplikation Java Basics - Anfänger-Themen 6
2 Variablenüberlauf bei Addition, Multiplikation Java Basics - Anfänger-Themen 2
O Überlauf durch Multiplikation Java Basics - Anfänger-Themen 7
H Generics machen mich verrückt Java Basics - Anfänger-Themen 8
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
MarvinsDepression Datentypen Generics: Erste Berührungen Java Basics - Anfänger-Themen 6
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
Cassy3 Generics - CompareTo Java Basics - Anfänger-Themen 21
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
districon Generics implementieren Java Basics - Anfänger-Themen 2
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Hilfe bei Generics Java Basics - Anfänger-Themen 11
G Generics Compilerfehler Java Basics - Anfänger-Themen 6
G Generics Methoden Java Basics - Anfänger-Themen 7
G Generics Java Basics - Anfänger-Themen 3
L Generics Tripel Java Basics - Anfänger-Themen 26
W Fragen zu Generics Java Basics - Anfänger-Themen 14
S Hilfe. Generics und BiFunctions Java Basics - Anfänger-Themen 10
X Wie Generics richtig benutzen ? Java Basics - Anfänger-Themen 5
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
I Java Generics factory method Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
I Generics und Comparable Java Basics - Anfänger-Themen 14
G Generics mit ? und Diamantoperator Java Basics - Anfänger-Themen 4
G Generics: Wildcard ? Java Basics - Anfänger-Themen 12
D Generics methode Java Basics - Anfänger-Themen 2
I Frage zu Generics und Wildcards Java Basics - Anfänger-Themen 2
N Generics und Casting eines Objekts Java Basics - Anfänger-Themen 1
A Generics Java Basics - Anfänger-Themen 6
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
W Generics - Typ zurückbekommen Java Basics - Anfänger-Themen 4
Dimax Erste Schritte Generics von Profis leicht erklärt Java Basics - Anfänger-Themen 7
C Warum funktioniert 'instanceof' bei generics nicht? Java Basics - Anfänger-Themen 4
J Collections Generics: Typ wird nicht erkannt Java Basics - Anfänger-Themen 7
D Generics ArrayList: Bug im Quellcode Java Basics - Anfänger-Themen 14
C Generics Java Basics - Anfänger-Themen 8
M Generics getter und setter Methoden Java Basics - Anfänger-Themen 4
T Generics in Java... Java Basics - Anfänger-Themen 9
J Generics Java Basics - Anfänger-Themen 3
J Generics Datentypen vergleichen Java Basics - Anfänger-Themen 16
V Generics / eigene Liste Java Basics - Anfänger-Themen 4
O Generics - Implementierung Java Basics - Anfänger-Themen 7
Shizmo Frage zu Generics Java Basics - Anfänger-Themen 3
F Multiple Generics Java Basics - Anfänger-Themen 10
G Datentypen verschiedene Objekte in eine ArrayList, Generics Java Basics - Anfänger-Themen 2
H Typsicherheit/Generics Java Basics - Anfänger-Themen 1
U Java generics funktioniert nicht Java Basics - Anfänger-Themen 0
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
S Generics und Comparable Interface Java Basics - Anfänger-Themen 5
A Generics Java Basics - Anfänger-Themen 4
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
R Compiler-Fehler Generics Problem Java Basics - Anfänger-Themen 2
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
K Generics bei Klassen- und Interfacedeklarationen Java Basics - Anfänger-Themen 3
D toArray und Generics Java Basics - Anfänger-Themen 2
D Zwei Generics beim Überladen von Methoden Java Basics - Anfänger-Themen 3
C Erste Schritte Filter für Generics oder ähnliches Java Basics - Anfänger-Themen 2
M Frage zu Generics-Deklaration Java Basics - Anfänger-Themen 5
S Frage zu Collection-Generics in Subklassen Java Basics - Anfänger-Themen 6
J Java Generics - Frage zu Types Java Basics - Anfänger-Themen 2
M <T> Generics Java Basics - Anfänger-Themen 7
B Interface Generics: prüfen ob Interface deklariert wird Java Basics - Anfänger-Themen 18
T Polymorphie Generics-Problem Java Basics - Anfänger-Themen 2
B Hilfe beim Verständnis zu Generics Java Basics - Anfänger-Themen 7
J Array Generics Java Basics - Anfänger-Themen 3
J Generics casten Java Basics - Anfänger-Themen 14
J Generics wildcard Java Basics - Anfänger-Themen 6
E Listen und Generics Java Basics - Anfänger-Themen 9
X Generics Java Basics - Anfänger-Themen 6
M Datei einlesen mit generics? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen


Oben