Erste Schritte Wert im Array suchen

dan1996

Aktives Mitglied
Guten Abend, ich möchte überprüfen, ob ein Wert sich im Array befindet und wenn nicht soll es eine IllegalArgumentException auslösen.
Vielen Dank schonmal für die Hilfe

z.b
int x = 2
ist x im int[] a = {12,7,5,9,13,24} ?

ich wollte es in diese Methode einbauen, in meine if anweisung
Java:
public static int next(int[] a, int x){

        if(a == null || a.length <= 0){
            throw new IllegalArgumentException("keine Werte im Array");
        }
        int result = 0;
        int lange = a.length;

        for (int i = 0; i < a.length; i++){

            if(...){
                throw new IllegalArgumentException("x befindet sich nicht im Array");
            }
         
            if(x == a[lange -1]){
                result = x;
            }
            if(a[i] == x && a[lange -1] != x){
                result = a[i+1];
            }
        }
        return result;
    }
 

httpdigest

Top Contributor
Die Tatsache, ob `x` im Array `a` enthalten ist, ist ja nicht abhängig vom aktuellen Schleifenindex, wenn du durch `a` iterierst. Weshalb also willst du den Check innerhalb der Schleife machen und somit auch für jeden Wert im Array erneut machen?
Du solltest vielleicht einmal vorher prüfen, ob `x` in `a` ist. Mit einer weiteren Schleife könnte das so aussehen:
Java:
public static int next(int[] a, int x) {
  if (a == null || a.length <= 0) {
    throw new IllegalArgumentException("keine Werte im Array");
  }
  boolean enthalten = false;
  for (int i = 0; i < a.length && !enthalten; i++) {
    enthalten |= a[i] == x;
  }
  if (!enthalten) {
    throw new IllegalArgumentException("x befindet sich nicht im Array");
  }
  int result = 0;
  int lange = a.length;
  for (int i = 0; i < a.length; i++) {
    if (x == a[lange - 1]) {
      result = x;
    }
    if (a[i] == x && a[lange - 1] != x) {
      result = a[i + 1];
    }
  }
  return result;
}
Oder, du verschiebst einen Teil der Ermittlung innerhalb deiner bereits existierenden Schleife, während du `result` berechnest, und dann gibst du eine Exception am Ende aus:
Java:
public static int next(int[] a, int x) {
  if (a == null || a.length <= 0) {
    throw new IllegalArgumentException("keine Werte im Array");
  }
  int result = 0;
  boolean enthalten = false;
  int lange = a.length;
  for (int i = 0; i < a.length; i++) {
    enthalten |= a[i] == x;
    if (x == a[lange - 1]) {
      result = x;
    }
    if (a[i] == x && a[lange - 1] != x) {
      result = a[i + 1];
    }
  }
  if (!enthalten) {
    throw new IllegalArgumentException("x befindet sich nicht im Array");
  }
  return result;
}
 

httpdigest

Top Contributor
Exceptions, die nicht in der Methode selbst behandelt werden, werden immer an den Aufrufer weitergeleitet. IllegalArgumentException ist keine checked Exception, muss also nicht als `throws IllegalArgumentException` an der Methode deklariert werden - falls du das meintest.
 

ocsme

Top Contributor
Guten Tag,

kann mir mal jemand erklären was das hier machen soll?
Java:
    if (x == a[lange - 1]) {
      result = x;
    }
    if (a[i] == x && a[lange - 1] != x) {
      result = a[i + 1];
    }

Möchtest du den Index zurück geben?

ob ein x im Array a vorkommt hätte ich ansonsten so gemacht :D
Java:
public static boolean kommtVor(int[] a, int x) {
       
        for(int i=0;i<a.length;i++)
            if(a[i]==x)
                return true;
        return false;
    }
 

dan1996

Aktives Mitglied
ich danke euch :)

@ocsme
die Aufgabe bestand:
Schreiben Sie eine Methode
static int next(int[] a, int x),
die solch ein Feld a und solch einen Wert x als Parameter erhält. Die Methode soll den kleinsten Wert von a liefern, der größer als x ist.
Falls x der größte Wert von a ist, soll x das Ergebnis sein

habe in einer Methode das Array sortiert und mit der Methode next() den kleinsten Wert von a liefern, der größer als x ist returnt
 

httpdigest

Top Contributor
Dann ist doch keine Frage, ob `x` im Array enthalten ist. Du sollst ja nur einen Wert finden, der mindestens so groß wie `x` ist. Das kann auch bedeuten, dass x=1 und a=[5,6,7]. Dann käme halt 5 als Ergebnis.
Außerdem braucht man hierfür das Array nicht zu sortieren.
Hätte ich insgesamt so gelöst:
Java:
public static int next(int[] a, int x) {
  if (a == null || a.length == 0)
    throw new IllegalArgumentException("Keine Werte im Array");
  int result = a[0];
  for (int i = 1; i < a.length; i++)
    if (a[i] > x && a[i] < result)
      result = a[0];
  if (result < x)
    throw new IllegalArgumentException("Kein Wert im Array ist >= " + x);
  return result;
}
 

dan1996

Aktives Mitglied
Ich fande es einfacher nach dem sortierten Array, die nächste zahl von x zu nehmen
Das ist die komplette Aufgabe:
Schreiben Sie eine Methode
static int next(int[] a, int x),
die solch ein Feld a und solch einen Wert x als Parameter erhält. Die Methode soll den kleinsten Wert von a liefern, der größer als x ist.
Falls der Parameter a das Null-Objekt ist oder keine Werte enthält oder nicht alle Elemente verschieden sind oder x nicht enthält, soll beim Aufruf der Methode eine IllegalArgumentException ausgelöst werden. Falls x der größte Wert von a ist, soll x das Ergebnis sein. Sie dürfen weder Methoden noch Klassen importieren, aber Hilfsmethoden schreiben. Die Folge a soll durch einen Aufruf von next nicht geändert werden.
Beispiel: Falls a die Folge (12,7,5,9,13,24) und x der Wert 5 ist, soll der Aufruf next(a,x) den Wert 7 liefern, da 7 die nächstgrößere Zahl von 5 ist.
 

ocsme

Top Contributor
Also wenn ich die Aufgabe nun richtig verstehe willst du einfach nur das nächst größere Minimum ermitteln nach einer Zahl x in einer Reihe a oder?

Java:
int[] a = new int[] {12,7,5,9,13,24};
        int x = 5;
      
        int min=Integer.MAX_VALUE;
      
        for(int i=0;i<a.length;i++) {
            if(x < a[i] && a[i] < min)
                min=a[i];
            System.out.println(min);
        }

somit steht in min die Zahl drin Reihenfolge spielt doch dann auch keine Rolle oder :p
Dann brauchst du nicht zu sortieren und kannst gleich returnen.
Musst leider durch das gesamte Array laufen !

gesamte Lösung nun so:
Java:
public static boolean kommtVor(int[] a, int x) {
       
        for(int i=0;i<a.length;i++)
            if(a[i]==x)
                return true;
        return false;
    }
   
    public static int next(int[] a, int x) {
          if (a == null || a.length <= 0) {
            throw new IllegalArgumentException("keine Werte im Array");
          }
         
          if(!kommtVor(a,x))
              throw new IllegalArgumentException("x nicht im Array");
        
          int min=Integer.MAX_VALUE;
          for(int i=0;i<a.length;i++)
                if(x < a[i] && a[i] < min)
                    min=a[i];
          return min;
        }
 

ocsme

Top Contributor
Sorry ich hab vergessen das muss noch unter die for schleife.
Java:
  if(min == Integer.MAX_VALUE)
              return x;

Denn wenn der x Wert ja der größte ist soll nicht 2147483647 raus kommen sondern x oder? :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B bestimmten Wert in Array suchen und ersetzen Java Basics - Anfänger-Themen 3
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
B Array nach Wert prüfen rekursiv Java Basics - Anfänger-Themen 5
B in einem Array den nächstgelegenen Wert zu einem eingabewert finden Java Basics - Anfänger-Themen 8
1 Array nimmt falschen Wert auf! Java Basics - Anfänger-Themen 2
T Klassen Den Wert aus Array lesen lassen Java Basics - Anfänger-Themen 12
S Array doppelter Wert prüfen Java Basics - Anfänger-Themen 7
CptK Bestimmten Integer Wert aus Array filtern Java Basics - Anfänger-Themen 2
D Compiler-Fehler Array an Methode übergeben und Wert zurückbekommen Java Basics - Anfänger-Themen 3
N Methoden vorherigen Wert in einem Array lieferen Java Basics - Anfänger-Themen 8
G Größten und kleinsten Wert im Array ermitteln? Java Basics - Anfänger-Themen 7
D Array wird immer mir 100 für jeden Wert initialisiert? Java Basics - Anfänger-Themen 2
L Methode schreiben die den maximalen Wert im Array ermittelt Java Basics - Anfänger-Themen 27
C Wert aus Array zufällig wählen Java Basics - Anfänger-Themen 2
D Bestimmten Wert aus Array List ausgeben Java Basics - Anfänger-Themen 7
P Array Wert ändern Java Basics - Anfänger-Themen 4
J Methoden Einzelnen Wert aus Objekt aus einem Array auslesen und danach sortieren Java Basics - Anfänger-Themen 8
P 2D Array auslesen gibt nur letzten Wert aus Java Basics - Anfänger-Themen 11
R Array: Mehrere Indizes für einen Wert ausgeben? Java Basics - Anfänger-Themen 4
C Datentypen Array-Einträge überhalb der Array-Länge - welcher Wert? Java Basics - Anfänger-Themen 5
B 2.Grösster Wert Array Java Basics - Anfänger-Themen 13
B Array aus Array und wert Java Basics - Anfänger-Themen 4
H Wie kann ich jedes zweite Array Wert ausgeben lassen?? Java Basics - Anfänger-Themen 6
S Kleinster Wert im Array bestimmen Java Basics - Anfänger-Themen 4
A Compiler-Fehler static Array Wert hinzufügen Java Basics - Anfänger-Themen 8
G zweitgrößter Wert in array bestimmen Java Basics - Anfänger-Themen 4
A long Wert in hexadezimales Array umwandeln Java Basics - Anfänger-Themen 3
P Variablen Wert vergleichen mit einem Array? Java Basics - Anfänger-Themen 13
C ein [n] [n] array erstellen und einen wert zuordenen Java Basics - Anfänger-Themen 7
Y grösster Wert von Array wiedergeben Java Basics - Anfänger-Themen 13
S Einfaches int Array gibt über System.out.println merkwürden Wert aus Java Basics - Anfänger-Themen 9
A string array wert downcast Java Basics - Anfänger-Themen 10
C Variablenzugriff / Wert in Array überprüfen Java Basics - Anfänger-Themen 7
I Array und variable gleicher wert, wird jedoch nicht erkannt Java Basics - Anfänger-Themen 4
T Array-Wert zurückgeben -return- Java Basics - Anfänger-Themen 10
M Array, Int-wert Ziffer je Position zuweisen Java Basics - Anfänger-Themen 3
B Hilfe! Kleinsten Wert aus Array finden? Java Basics - Anfänger-Themen 3
J Array: Jedem Element direkt denselben Wert zuweisen Java Basics - Anfänger-Themen 6
D größer und niederigster Wert im Array Java Basics - Anfänger-Themen 8
P wert an array anfügen? Java Basics - Anfänger-Themen 3
A String Array: Suche nach Name -> Wert? Java Basics - Anfänger-Themen 3
N wert von array Java Basics - Anfänger-Themen 4
J Array - Index ermitteln per Wert Java Basics - Anfänger-Themen 3
G Vergleich Eingabe mit Wert in vorhandenem Array Java Basics - Anfänger-Themen 2
G Min und Max Wert aus Array List lesen Java Basics - Anfänger-Themen 3
D wert aus variable in array Java Basics - Anfänger-Themen 3
G Array anzeige nur letzter wert Java Basics - Anfänger-Themen 2
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
A Negativ-Wert Java Basics - Anfänger-Themen 4
R finaler Wert in outerMethod von method in InnerMethodClass Java Basics - Anfänger-Themen 2
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
T Datum als Variable wert Java Basics - Anfänger-Themen 4
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
K Java gleicher Wert von Zahlen? Java Basics - Anfänger-Themen 5
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
S Runden auf den niedrigsten Wert Java Basics - Anfänger-Themen 10
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
T Mit jedem Wert in der for-Schleife weiter arbeiten Java Basics - Anfänger-Themen 3
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 4
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
I Historisierung - Alter Wert, Neuer Wert... wie speichern? Java Basics - Anfänger-Themen 44
J Wert in Dropdown Menü kursiv schrieben Java Basics - Anfänger-Themen 19
H Uhrzeitespanne in Integer Wert umrechnen Java Basics - Anfänger-Themen 1
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
M Wie kann ich festlegen, dass ein Attribut maximal den Wert 0 erreicht, also nicht in den negativen Bereich fällt? Java Basics - Anfänger-Themen 4
M Methoden Wert einer Variable geht verloren? Java Basics - Anfänger-Themen 6
U Ascii wert verschieben, wie möglich? Java Basics - Anfänger-Themen 3
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
T Algorithmus für Index mit min-Wert Java Basics - Anfänger-Themen 2
J Wert zurückgeben über get Methode Java Basics - Anfänger-Themen 8
E Slider - Wert übergeben und überschreiben Java Basics - Anfänger-Themen 5
G Input/Output getText() gibt keinen Wert! Java Basics - Anfänger-Themen 13
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
T Feststellen, dass Wert zu groß; Caesar Chiffre Java Basics - Anfänger-Themen 3
J maximaler Wert eines Integers Java Basics - Anfänger-Themen 14
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
H Methode über String Wert aufrufen Java Basics - Anfänger-Themen 8
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
B Map<String, FilterMeta, wie Wert bekommen? Java Basics - Anfänger-Themen 4
ms_cikar Den Wert einer Hex. value bestimmten. Java Basics - Anfänger-Themen 8
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben