Werte in Array zählen und Summe der einzelnen Teile ausgeben

purzel

Bekanntes Mitglied
Hallo,

ich sitze derzeit an einer Art Umfrage. Die Frage und Antwortmöglichkeiten werden aus der Datenbank gelesen. Die Antworten werden gleich wie die User(ID) mit in die Datenbank eingetragen. Nun mein Problem:

Ich habe z.B. folgendes Array:
Code:
answers[] {0,1}
das aus 3 Antwortmöglichkeiten generiert wurde (1-3).0 = 1. Antwortmöglichkeit etc.

Das zählen geht noch, in dem ich einfach die Länge aus
Code:
answers[]
bestimme!

WIE zähle ich die einzelnen Werte? :rtfm:

in dem Fall wäre es:

Antwort 1: 1
Äntwort 2: 1
Antwort 3: 0

LG

purzel
 
I

IMartin

Gast
Bin mir nicht sicher, ob das gemeint war, aber unter der Annahme, dass in answers wirklich nur Werte von 0 bis 2 auftauchen und gezählt werden soll, wie oft diese auftauchen, vielleicht so:

Java:
		int[] answers =  { 0, 1 };
		int[] counter = { 0, 0, 0 };
		
		for(int answer : answers) {
			counter[answer]++;
		}
		
		System.out.println("Antwort 1: " + counter[0]);
		System.out.println("Antwort 2: " + counter[1]);
		System.out.println("Antwort 3: " + counter[2]);
 

Degush

Aktives Mitglied
Deine Frage ist sehr umständlich formuliert. Was genau willst du?


"Das zählen geht noch"
Was für ein Zählen? Was willst du zählen?

(1-3).0 = 1
?? Das verstehe ich nicht.

Wenn du meinst, dass du zählen möchtest, wie oft eine bestimmte Antwort angeklickt wurde, nachdem die Antworten in die Datenbank eingetragen worden sind:

Java:
    public void foo()
    {
        String[] antwortmöglichkeiten = {"a","b","c"};
        String[] antworten = {"a","a","b","a","c","c","b","a"};
        int[] antwortenZähler = new int[antwortmöglichkeiten.length];
        for(int i = 0; i < antworten.length; i++)
        {
            for(int j = 0; j < antwortmöglichkeiten.length; j++)
            {
                if ( antworten[i].equals(antwortmöglichkeiten[j]) )
                {
                    antwortenZähler[j]++;
                }
            }
        }
        
        for(int i = 0; i < antwortenZähler.length; i++)
        {
            System.out.println("Antwort "+(i+1)+" wurde "+antwortenZähler[i]+" mal abgegeben");
        }
    }
 

markus99

Bekanntes Mitglied
Du könntest hierbei doch ein Binäres Zählsystem verwenden. Binäre Operatoren gibt es ja in Java (& und | "nur einmal tippen").

A1 = 1
A2 = 1
A3 = 0
-> 110 = 6

Wenn du "6" auflöst, bekommst du immer die exakte Folge zurück.
6 - 2^2 = 1; Rest 2
2 - 2^1 = 1, Rest 0
0 -> 0
= 110

Damit kannst du wensentlich mehr Werte in jeweils einem Integer speichern (und damit weiter arbeiten), was natürlich einfacher ist und im Endeffekt auch weniger Speicher benötigt.

Und bei dem wo du grad hängst musst du nur die Summe des Arrays dafür bilden/abfragen.
 
N

nillehammer

Gast
Die Frage und Antwortmöglichkeiten werden aus der Datenbank gelesen.
Und da kommt sowas wie
SQL:
SELECT COUNT(...
nicht in Frage? Oder gibt die Datenbankstruktur das nicht her?
 

purzel

Bekanntes Mitglied
Bin mir nicht sicher, ob das gemeint war, aber unter der Annahme, dass in answers wirklich nur Werte von 0 bis 2 auftauchen und gezählt werden soll, wie oft diese auftauchen, vielleicht so:

Java:
		int[] answers =  { 0, 1 };
		int[] counter = { 0, 0, 0 };
		
		for(int answer : answers) {
			counter[answer]++;
		}
		
		System.out.println("Antwort 1: " + counter[0]);
		System.out.println("Antwort 2: " + counter[1]);
		System.out.println("Antwort 3: " + counter[2]);

Ok, Danke für den Tipp, werde es demnächst ausprobieren!

Und da kommt sowas wie
SQL:
SELECT COUNT(...
nicht in Frage? Oder gibt die Datenbankstruktur das nicht her?

Mh, zählt mann damit nicht nur die Gesamtanzahl wie ich es gemacht habe mit
Code:
answers.length()
?
 

casi91

Bekanntes Mitglied
Mh, zählt mann damit nicht nur die Gesamtanzahl wie ich es gemacht habe mit answers.length() ?

Das kommt natürlich darauf an, wie du dein SQL gestaltest.
Machst du
Java:
Select Count(*) from tabelle
macht es keinen Unterschied.
Baust du aber noch eine "where"-Klausel ein
Java:
Select Count(*) from tabelle where antwort = 0
Bekommst du die Anzahl der Antworten die 0 sind zurück.
(entsprechend musst du dann noch eine Abfrage für 1 machen, denke aber das ist verständlich ;-) )
 

purzel

Bekanntes Mitglied
@IMartin:

Deine Version funktioniert, allerdings gab es bei dieser Übernahme deines Codes Errors. Ich habe die
Code:
for()
-Schleife umgebaut und die Variable counters angepasst. Das funtioniert jetzt wie gewünscht.

Danke!!

Liebe Grüße

purzel
 

purzel

Bekanntes Mitglied
Das kommt natürlich darauf an, wie du dein SQL gestaltest.
Machst du
Java:
Select Count(*) from tabelle
macht es keinen Unterschied.
Baust du aber noch eine "where"-Klausel ein
Java:
Select Count(*) from tabelle where antwort = 0
Bekommst du die Anzahl der Antworten die 0 sind zurück.
(entsprechend musst du dann noch eine Abfrage für 1 machen, denke aber das ist verständlich ;-) )

Es ist in der Tat umständlich, da meine Umfragen variabel sind. D.h. es können so oder so über 5 Antwortmöglichkeiten geben ^^
 
N

nillehammer

Gast
Es ist in der Tat umständlich, da meine Umfragen variabel sind. D.h. es können so oder so über 5 Antwortmöglichkeiten geben ^^
Dafür gibt es die GROUP BY-Klausel. Es lohnt sich, sich mit SQL zu beschäftigen. Das wird Dich am Ende sehr glücklich machen. :D:D:D
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Zusammenhängende Werte in 2-dim. Array finden und zählen Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
M Aus Excel Tabelle lesen und Werte in Array speichern Allgemeine Java-Themen 15
A String Array Werte in neues String Array übernehmen Allgemeine Java-Themen 5
T Array Sortieren (null Werte ans Ende) Allgemeine Java-Themen 2
MonsterBit 2 Werte aus 2 Array vergleichen Allgemeine Java-Themen 10
H Prüfen, ob doppete Werte in int-Array vorhanden sind Allgemeine Java-Themen 16
T Werte übergeben, aber Array erhalten? Allgemeine Java-Themen 7
H Hash Tabelle einlesen und die Werte an ein Array übergeben Allgemeine Java-Themen 10
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
C In DefaultTableModel nachträglich Werte einfügen Allgemeine Java-Themen 2
rosima26 Unterschiedliche Werte bei return/print Allgemeine Java-Themen 12
berserkerdq2 Kann man in IJVM maximal 3 Werte im Stack haben? Allgemeine Java-Themen 3
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
MiMa Werte in liste speichern? Allgemeine Java-Themen 3
Drachenbauer Wie kann ich einer existierenden Enum von außerhalb veränderte Werte zuweisen? Allgemeine Java-Themen 5
Arif Math.cos liefert komische Werte Allgemeine Java-Themen 8
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
Henrithebegiinerofjava Erste Schritte Werte in Eingabefelder einlesen und wiederholen lassen. Allgemeine Java-Themen 3
I Java: public final Werte: Gute oder schlechte Praxis? Allgemeine Java-Themen 6
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
J Swing UIManager Werte Allgemeine Java-Themen 6
4 Java 2 ArrayListen Werte herauslesen/übernehmen Allgemeine Java-Themen 4
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
KeVoZ_ int Werte in einen String fassen Allgemeine Java-Themen 4
N Werte aus Hashmap auslesen und übertragen Allgemeine Java-Themen 8
2 mehrere Json Werte Parsen Allgemeine Java-Themen 3
R jTable, nur Werte zwischen 2 Double values ausgeben Allgemeine Java-Themen 3
B Übergebene Werte in Gerätedatei schreiben Allgemeine Java-Themen 2
M Exceltabelle in Java erstellen und Werte einlesen Allgemeine Java-Themen 32
N Werte aus Arrays auslesen funktioniert nicht Allgemeine Java-Themen 5
R Int werte vergleichen und Anzahl Paare ausgeben Allgemeine Java-Themen 4
O Klassen Programm in Klassen unterteilt, werte werden nicht mehr übernommen Allgemeine Java-Themen 3
R kann man irgendwie mit Arrays mit Eingabefenstern und Schleifen Werte abklappern? Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
K Methoden Arrays auf true Werte prüfen Allgemeine Java-Themen 4
R Variablen per HSSF geheime Werte von JAVA an EXCEL Allgemeine Java-Themen 2
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
C Datentypen Enum-Werte Bestanteil von anderem Enum Allgemeine Java-Themen 8
Q GregorianCalendar Methode add liefert komische Werte Allgemeine Java-Themen 3
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
Madlip Variablen 3 Werte aus ArrayList und weiter ... Allgemeine Java-Themen 4
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
S Sinnvolles skalieren von Werte-Set? Allgemeine Java-Themen 2
S Keytool: mögliche Werte für Parameter Allgemeine Java-Themen 4
L Veränderbare Werte zusammenfassen Allgemeine Java-Themen 18
P Variablen Werte der Objektvariablen mit getFields() abfragen Allgemeine Java-Themen 2
O Variablen System.getenv: Sinnlose Werte, Arrays?! Allgemeine Java-Themen 6
J JSONObject Reihenfolge der Werte? Allgemeine Java-Themen 4
T java.uil.Random liefert negative Werte Allgemeine Java-Themen 2
c_sidi90 Werte an bestimmten Position aus PDF in DB sichern Allgemeine Java-Themen 2
C Vergleich von Enums gibt inkorrekte Werte Allgemeine Java-Themen 6
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
C aus einem String einzelne Hex Werte lesen Allgemeine Java-Themen 7
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
M rxtx OutputStream sendet falsche werte Allgemeine Java-Themen 3
J Hex Werte in Bitmap Raster darstellen Allgemeine Java-Themen 16
E Werte übergabe Allgemeine Java-Themen 2
E Werte in andere Klasse übernehmen Allgemeine Java-Themen 8
S Bytes oder Hex-Werte zu Assembler Code? Allgemeine Java-Themen 6
D Mehrere String-Werte in eine Tabellen-Zelle schreiben Allgemeine Java-Themen 8
P Methoden und Werte Allgemeine Java-Themen 17
M Kugelschnittberechnung liefert falsche Werte Allgemeine Java-Themen 4
N unzählige Werte am besten speichern(?) Allgemeine Java-Themen 2
D Spielerwechsel über boolsche Werte läuft inkorrekt Allgemeine Java-Themen 6
T Apache POI Export EXCEL - [Zahlen-Werte] Allgemeine Java-Themen 1
S Doppelte Werte in Listen,Vectoren etc suchen Allgemeine Java-Themen 2
Airwolf89 Zugriff auf Werte in ArrayList<ArrayList> Allgemeine Java-Themen 4
K Datenhaltungsklasse für wenige Werte? Allgemeine Java-Themen 4
T JProgressbar ändert werte nicht Allgemeine Java-Themen 28
K need help ; Werte aus einer Datei auslesen Allgemeine Java-Themen 4
C Eingegebene Werte werden nicht gezeichnet Allgemeine Java-Themen 2
chik 2 return werte für Greedy-Algorithmus (gelöst) Allgemeine Java-Themen 3
hdi dynamische return-Werte Allgemeine Java-Themen 15
R Double Werte aus byte[] auslesen Allgemeine Java-Themen 5
T Wurfweitenberechnung: X-Werte bei extremen Werten falsch. Allgemeine Java-Themen 15
G Excel Werte / Zellen formatieren Allgemeine Java-Themen 5
G Werte bei Rekursion viel höher als erwartet Allgemeine Java-Themen 3
P Bedeutung der Process.exitValue() Werte? Allgemeine Java-Themen 3
C String to hex und hex-Werte löschen Allgemeine Java-Themen 2
D Suche sowas wie Map nur für mehrere Werte Allgemeine Java-Themen 13
M Werte im Browser aktualisieren Allgemeine Java-Themen 2
L Werte in externer Datei speichern und wieder auslesen? Allgemeine Java-Themen 8
MQue Werte in eine html- Datei schreiben Allgemeine Java-Themen 17
D werte in excelltabelle schreiben Allgemeine Java-Themen 5
N Werte Von C++ nach Java über den Stream möglich? Allgemeine Java-Themen 8
S JFreeChart LineChart Punkte über NULL Werte hinweg verbinden Allgemeine Java-Themen 5
G Werte zusammenfassen! Allgemeine Java-Themen 3
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
W PrintWriter (PrintStream) sendet falsche Werte Allgemeine Java-Themen 18
Y Methode soll 2 Werte zurückliefern Allgemeine Java-Themen 7
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
D Werte aus drei Auswahllisten Allgemeine Java-Themen 5
P JSlider nur bestimmte werte geben Allgemeine Java-Themen 2
P JavaCode verschlüsseln / verschlüsselte Werte Allgemeine Java-Themen 3
D JTextfield für double werte Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben