Portal > Foren > Java > Allgemeine Java-Programmierung > Array nach werd durchsuchen
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 11.02.2005, 12:51 Nach oben    #1
Macklaud
Gast
 
Beiträge: n/a
Standard Array nach werd durchsuchen

Hallo,
weis zufällig einer wie ich ein array nach einem bestimmten wert durchsuche ?

z.B. möchte ich ganzes array nach der zahl 5 durchsuchen, und ich möchte wissen wieviel mal sie in der array vorhanden ist ^^[/highlight]
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 12:55 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

hi.

z.b. so
Code:
int[] testArray = { 1, 5, 8, 5, 9, 10, 5, 5, 1 };

int zaehler  = 0;
int gesucht = 5;

for( int i = 0; i < testArray.length; i++ )
{
      if( testArray[i] == gesucht )
      {
             zaehler++;
      }
}

System.out.println( gesucht + " ist " + zaehler + " mal vorhanden." );
grüße ben
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 13:18 Nach oben    #3
Macklaud
Gast
 
Beiträge: n/a
Standard

hmm, ich habe gehofft dass es ungefair so wie bei php gehen würde

if(in_array("wert", $array)) echo "Ist drin";

Wie man das manuell machen kann war mir auch schon klar
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 13:20 Nach oben    #4
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 539
Standard

Zitat:
hmm, ich habe gehofft dass es ungefair so wie bei php gehen würde

if(in_array("wert", $array)) echo "Ist drin";

Wie man das manuell machen kann war mir auch schon klar
Meines Kenntnisstandes nach geht das nicht. Musst du wohl so wie es Ben gezeigt hat bewältigen.
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 13:27 Nach oben    #5
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

pack es in eine methode einer eigenen uitlity-klasse oder so und verwende sie dann, wenn du es brauchst
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 13:34 Nach oben    #6
Macklaud
Gast
 
Beiträge: n/a
Standard

ämm, wie was wo reinpacken ?? Ich habe in der schule erst seit paar monaten Java, und das nur 1x die woche ^^ das must mir schon näher erkleren wie ich das mach ^^
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 13:39 Nach oben    #7
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

hm. ja, so pauschal kann man das ja nicht erklären.
also ich könnte hier jetzt was schreiben, aber dann würden da direkt mal weitere 14fragen draufkommen. ich muss mal darüber nachdenken, wie ich das am besten formuliere.

zunächst einmal würde ich dir raten, dass du eine methode in der klasse schreibst, die diese funktionalität (also die suche nach einem element in einem array) öfters verwendet.

wenn das nur einmal aufgerufen wird brauchst du auch keine methode. (das stimmt so nicht ganz, aber lassen wir das mal so stehen *g*)

Code:
private int countEqualValues( int zahl )
{
       // obige schleife

       return zaehler;
}
wenn du jetzt wissen willst, wie oft die 5 in dem array vorkommt rufst du nur die methode auf

Code:
int anzahlFuenfen = countEqualValues( 5 );
grüße ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 13:42 Nach oben    #8
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Code:
public class ArrayUtils {
    public static int count(int data[], int needle) {
        int count = 0;
        for(int i = 0; i < data.length; i++) {
            if(data[i] == needle) {
                count++;
            }
        }
        return count;
    }
}
Verwendung:
Code:
int count = ArrayUtils.count(new int[] {4, 5, 6,32, 5, 5, 5, 2, 4, 6}, 5);
System.out.println("5 ist "+count+" mal vorhanden");
Edit: Ah... Ben war mal wieder schneller. ^^"
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 14:44 Nach oben    #9
Macklaud
Gast
 
Beiträge: n/a
Standard

Hmm, verstehe ich nicht so wirklich alles ^^ aber werde es mal versuchen ^^ thx
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 14:50 Nach oben    #10
mic_checker
Gast
 
Beiträge: n/a
Standard

Was verstehst du daran denn nicht?

Der einzige wirkliche Unterschied zwischen den beiden Ansätzen besteht darin, das TheDragonMaster eine Klassenmethode verwendet und anstatt das Array in der Methode zu deklarieren u. initialisieren übergibt er es der Methode:

Code:
public static int count(int data[], int needle) {
Oder hast du Fragen zur grundsätzlichen Vorgehensweise ? Ich denke der Code von beiden zeigt das es leicht zu realisieren ist.

Btw. hab zwar absolut keine Ahnung von PHP, aber liefert folgender Code wirklich die Häufigkeit des Elementes im Array zurück ?

Code:
if(in_array("wert", $array)) echo "Ist drin";
Sieht eher so aus als würde es nur überprüfen ob das Element überhaupt enthalten ist und nicht wie oft. Aber wie gesagt, kann kein PHP....Hat sich gerad nur so angehört als würd das Code Snippet genau das machen.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 14:52 Nach oben    #11
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

hallo,
sag einfach, was du nicht verstehst. das ist jetzt kein handwerk .. du könntest das natürlich einfach übernehmen .. und dann würdest du immer wieder mit "static" arbeiten. das ist aber nicht sinn der sache.

in DMs beitrag ist es so, dass er die methode als static deklariert, damit man auf sie ohne eine instanz der klasse zugreifen kann.

du musst also nicht das hier machen:

Code:
ArrayUtils utils = new ArrayUtils();
utils.methode();
sondern kannst direkt
Code:
ArrayUtils.methode();
schreiben.

das kennst du z.b. hier System.out.println() oder Math.sqrt().

wenn du etwas nicht verstanden hast .. dann frag einfach

grüße ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 17:06 Nach oben    #12
Macklaud
Gast
 
Beiträge: n/a
Standard

Ömm, von dir @ Ben habe ich eigentlich alles verstanden ^^ Is ne gutte anleitung da
Hab von TheDragon master nicht alles verstanden ^^
Weis net was:

Code:
public class ArrayUtils { 
    public static int count(int data[], int needle) {
bedeutet ^^

und

return count;

sagt mir auch nichts

habe ja auch nicht alles daran nicht verstanden, nur public static und public class ArrayUtils + return .

@ mic_checker
Jap, genau, if(in_array("wert", $array)) echo "Ist drin";
überprüft nur ob der wert "wert" in der variable $array vorhanden ist.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 17:24 Nach oben    #13
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

zum
Code:
return count;
das ist das mit meinem
Code:
return zaehler;
identisch.

du gibst eben den wert zurück, der in der methode ermittelt wurde.

das
Code:
public static
bedeutet, dass die methode ohne eine instanz der klasse ArrayUtils aufgerufen werden kann. du brauchst also kein objekt.

wenn DragonMaster das ohne static geschrieben hätte, dann müsstest du ein objekt anlegen
Code:
ArrayUtils utils = new ArrayUtils();
das brauchst du jetzt aber nicht.

das
Code:
public class ArrayUtils
ist einfach eine selbstgeschriebene klasse. du hättest auch [java:1:adc0d92705]public class Hundekuchen[/code]schreiben können.

"class" sagt eben nur aus, dass es sich dabei um eine klasse handelt und "public" ist ein modifier.

wenn du das public weglässt, dann wird der default gewählt, dann gibt es noch private und protected.
musst du mal irgendwo nachschlagen

grüße ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 17:25 Nach oben    #14
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Hast du dich überhaupt schonmal mit Java beschäftigt?
Wenn nicht solltest du vielleicht mal sowas wie javabuch.de oder "Java ist auch eine Insel" lesen.
Das sind eigentlich die absoluten Grundlagen.
Ich werde das auch nicht weiter erklären, weil dass bereits unzählige Male getan wurde.
Davon abgesehen fürchte ich, dass meine Erklärung dazu führen würde, dass du nur noch mehr Fragen hast. ^^"
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 22:31 Nach oben    #15
Macklaud
Gast
 
Beiträge: n/a
Standard

ömm @ TheDragonMaster, wend weiter liest, erwehne ich dass ich das für die schule brauche, für informatik (da ich abi als InformationstechnischerAssistens mache)
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.02.2005, 22:52 Nach oben    #16
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Ich hab auch Java in der Schule (4tes Abifach von mir ist Informatik), aber das hatten wir schon nach zwei Wochen erledigt.
Ok... dafür kam die For-Schleife erst nach 2 Jahren...
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.02.2005, 10:35 Nach oben    #17
Macklaud
Gast
 
Beiträge: n/a
Standard

Naja, wir werden uns mit Java 2 in den nähsten 2 jahren auch noch bescheftigen also hoff ich dass ich nachher gut java kann
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2005, 08:25 Nach oben    #18
Macklaud
Gast
 
Beiträge: n/a
Standard

Ma noch ne frge zur arrays
Code:
int my_array[]=new int[5];
so lege ich die anzahl der felder fest, was ist nun wenn ich die anzahl nicht kenne?
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2005, 08:37 Nach oben    #19
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Morgen,
dann kannst Du kein Array verwenden uns musst auf eine Collection zurückgreifen.
http://java.sun.com/j2se/1.5.0/docs/...ollection.html

Die sind etwas anders aufgebaut bzw. Du musst etwas anders mit Ihnen arbeiten.

Lies Dir mal das hier durch:
http://www.galileocomputing.de/openb...00038C1F013100

Es ist meiner Ansicht nach nicht ganz trivial von Arrays auf Collection-Typen umzusteigen. Aber versuche es erstmal selbst und frage dann nochmal nach, wenn Du nicht weiterkommst

Da Du ja vorher PHP programmiert hast muss ich Dich enttäuschen. Etwas in der Art von

Code:
$_array = array();

$n = 5;

for( $i = 0; i < $n; $i++  )
{
         $_array[] = $i;

         // bzw. alternativ mit array_push()
}
gibt es in Java nicht.

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.02.2005, 13:44 Nach oben    #20
Macklaud
Gast
 
Beiträge: n/a
Standard

k, thx ^^

ps: ich habe php nicht programmiert sonder ich mache es noch immer ^^
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zend Framework - Probleme mit Zend_Controller_RewriteRouter bzw. Form der URLs Ben PEAR, PECL und Frameworks 12 24.12.2006 17:17
Suche Hilfe: Angebot und Nachfrage berechnen ljungi Plauderecke 6 17.12.2006 22:10
Array in Bezug auf ein anderes sortieren... code5 PHP-Programmierung 2 15.05.2006 15:56
Ein Array in ein Array schreiben bacarni PHP-Programmierung 2 07.02.2006 14:24


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45