Sem I (Program I) - N6 Flashcards

1
Q

Platform-specific newline (Java printf)

A

%n

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How big column shoud be (Java printf)

A

%10s = for string
%10d = for int

public class Solution {

    public static void main(String[] args) {
        System.out.printf("|%10s|%10s|%n", "Column1", "Column2");
        System.out.printf("|%10d|%10d|", 123, 4567);
        // Output:
        // |   Column1|   Column2|
        // |       123|      4567|
    }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Formating after comma number (Java printf)

A

%.2

double pi = 3.14159;
System.out.printf("Value of pi: %.2f%n", pi);
// Output: Value of pi: 3.14
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Left-justify (default is right-justify) (JAVA printf)

A

-

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Include a plus sign for positive numbers (JAVA printf)

A

System.out.printf(“Number with sign: %+d%n”, num);
// Number with sign: +12345

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Pad with zeros instead of spaces (JAVA printf)

A
System.out.printf("Number with padding: %010d%n", num);
// Number with padding: 0000012345
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Use locale-specific grouping separators (e.g., thousands separator) (JAVA printf)

A
System.out.printf("Number with grouping: %,d%n", num);
// Number with grouping: 12,345
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wozu dienen Exceptions in Java? Wann sind sie brauchbar bzw. nicht (unbedingt) brauchbar?

A

Exceptions dienen dazu, Laufzeitfehler zu behandeln und den Programmablauf kontrolliert zu stoppen oder zu steuern. Sie sind brauchbar, um Fehlerbedingungen zu behandeln, ohne dass das Programm unerwartet abstürzt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wann (und wie) sollte eine Methode ihre Exceptions ankündigen?

A

Eine Methode sollte ihre Exceptions ankündigen, wenn sie potenziell eine überprüfte Ausnahme (checked exception) **auslösen kann, die nicht innerhalb der Methode behandelt wird. **

public void meineMethode() throws IOException {
    // Methode
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist der Exception Handler?

A

Ein Exception Handler ist ein Codeblock, der eine Ausnahme fängt und behandelt. In Java wird dies durch den catch-Block realisiert, der zusammen mit dem try-Block verwendet wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wo sollte eine Exception gefangen werden?

A

Eine Exception sollte dort gefangen werden, wo sie sinnvoll behandelt werden kann. Idealerweise so nahe wie möglich an der Quelle des Problems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist der try-Block?

A

Ein try-Block enthält den Code, der potenziell eine Ausnahme auslösen könnte. Er wird verwendet, um Ausnahmen abzufangen und sicherzustellen, dass sie behandelt werden.

try {
    // Risiko-Code
} catch (ExceptionType e) {
    // Behandlungs-Code
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist eine catch-Klausel?

A

Eine catch-Klausel fängt eine spezifische Ausnahme ab, die im try-Block aufgetreten ist, und führt den Code zur Fehlerbehandlung aus

try {
    // Risiko-Code
} catch (IOException e) {
    // Fehlerbehandlung für IOException
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Kann eine Methode mehrere Rückgabewerte haben?

A

Direkt kann eine Methode nur einen Rückgabewert haben. Man kann jedoch mehrere Werte in einem Objekt oder einem Array bündeln und dieses zurückgeben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Kann eine Methode mehrere Rückgabewerte haben?

A

Nein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist die Komplexität und wozu ist sie gut?

A

Komplexität bezieht sich auf die Analyse der Laufzeit oder des Speicherbedarfs eines Algorithmus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Kann man nach einem Element schneller in einem sortierten oder unsortierten Array suchen?

A

In einem sortierten Array kann man mit der binären Suche (O(log n)) schneller suchen als mit der linearen Suche (O(n)) in einem unsortierten Array.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was ist die Komplexitätsklasse für lineare Suche im sortierten und im unsortierten Feld?

A

Für beide ist die Komplexitätsklasse O(n), da jedes Element nacheinander durchsucht werden muss.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Kommt man ohne Suche aus, wenn in einem sortierten Feld ein Element eingefügt werden soll?

A

Nein, man muss die richtige Position finden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

java.util.Scanner.hasNext()

A

This method checks if there is another token available in the input of the Scanner (for example space)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

java.lang.Integer.parseInt(String)

A

method in Java is used to convert a String that represents an integer into the actual integer value.

public class ParseIntExample {
    public static void main(String[] args) {
        String numberString = "123";
        int number = Integer.parseInt(numberString);
        System.out.println("The integer value is: " + number);  // Output: The integer value is: 123
    }
}
22
Q

java.lang.Integer.toString(int);

A

method in Java is used to convert an integer to its String representation.

import java.util.Scanner;

public class IntegerToStringExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

    System.out.print("Enter an integer: ");
    int number = scanner.nextInt();

    String numberString = Integer.toString(number);

    System.out.println("The String representation of the integer is: " + numberString);
    
    String concatenatedString = "The number is " + numberString;
    System.out.println(concatenatedString);
    
    scanner.close();
} }
23
Q

Was ist der Unterschied zwischen der sequentiellen und der binären Suche in Bezug auf die Zeitkomplexität?

A

Die sequentielle Suche hat eine Zeitkomplexität von O(n), wobei n die Länge des Arrays ist.
Die binäre Suche O(log n).

24
Q

Was ist der effizienteste Weg, ein Element in ein unsortiertes Array einzufügen?

A

Am Ende des Arrays anzuhängen. Dies hat eine Zeitkomplexität von O(1)

25
Q

Wie unterscheidet sich das Einfügen eines Elements in ein sortiertes Array von dem Einfügen in ein unsortiertes Array?

A

Das Einfügen in ein unsortiertes Array hat eine Zeitkomplexität von O(1) (am Ende einfügen), während das Einfügen in ein sortiertes Array eine Zeitkomplexität von O(n) haben kann.

26
Q

Was passiert, wenn man versucht, ein Element aus einem Array zu löschen?

A

Beim Löschen eines Elements aus einem Array wird zunächst das Element gesucht. Wenn es gefunden wird, wird ein neues Array erzeugt, das um 1 kürzer ist als das ursprüngliche. Alle Elemente außer dem zu löschenden werden in das neue Array kopiert.

27
Q

Was ist ein offenes Array?

A

Ein offenes Array, auch als “varargs” (variadic arguments) bekannt, ist eine Funktionalität in Java, die es ermöglicht, eine Methode mit einer variablen Anzahl von Argumenten aufzurufen. (…)

public class VarargsExample {
    public static void printNumbers(int... numbers) {
        for (int number : numbers) {
            System.out.println(number);
        }
    }

    public static void main(String[] args) {
        printNumbers(1, 2, 3);
        printNumbers(4, 5);
        printNumbers(6);
        printNumbers(); // keine Argumente
    }
}
28
Q

equals() (Java)

A

Methode der Klasse Object, die in allen Java-Objekten verfügbar ist. Sie wird verwendet, um festzustellen, ob zwei Objekte gleich sind.

29
Q

deepEquals() (JAVA)

A

Utility-Methode, die in der Klasse java.util.Objects enthalten ist. Sie wird verwendet, um zwei Objekte rekursiv auf Gleichheit zu überprüfen. Dies ist besonders nützlich für Arrays oder verschachtelte Strukturen, bei denen einfache Gleichheitsprüfungen nicht ausreichen.

Die Methode deepEquals() überprüft die Gleichheit von zwei Objekten auf einer tieferen Ebene als equals().

import java.util.Objects;

public class DeepEqualsExample {
    public static void main(String[] args) {
        // Primitive Arrays
        int[] arr1 = {1, 2, 3};
        int[] arr2 = {1, 2, 3};
        System.out.println(Objects.deepEquals(arr1, arr2)); // true

        // Zwei-dimensionale Arrays
        int[][] arr3 = {{1, 2}, {3, 4}};
        int[][] arr4 = {{1, 2}, {3, 4}};
        System.out.println(Objects.deepEquals(arr3, arr4)); // true

        // Arrays von Objekten
        String[] arr5 = {"a", "b", "c"};
        String[] arr6 = {"a", "b", "c"};
        System.out.println(Objects.deepEquals(arr5, arr6)); // true

        // Verschachtelte Strukturen
        Object[] arr7 = {arr3, arr5};
        Object[] arr8 = {arr4, arr6};
        System.out.println(Objects.deepEquals(arr7, arr8)); // true

        // Unterschiedliche Arrays
        int[] arr9 = {1, 2, 3};
        int[] arr10 = {1, 2, 4};
        System.out.println(Objects.deepEquals(arr9, arr10)); // false
    }
}
30
Q

copyOfRange() (JAVA)

A

Klasse java.util.Arrays wird verwendet, um einen Teilbereich eines Arrays zu kopieren und in einem neuen Array zurückzugeben.

import java.util.Arrays;

public class CopyOfRangeExample {
    public static void main(String[] args) {
        // Beispiel mit einem int-Array
        int[] originalIntArray = {1, 2, 3, 4, 5};
        int[] copiedIntArray = Arrays.copyOfRange(originalIntArray, 1, 4);
        System.out.println(Arrays.toString(copiedIntArray)); // Ausgabe: [2, 3, 4]

        // Beispiel mit einem String-Array
        String[] originalStringArray = {"A", "B", "C", "D", "E"};
        String[] copiedStringArray = Arrays.copyOfRange(originalStringArray, 0, 3);
        System.out.println(Arrays.toString(copiedStringArray)); // Ausgabe: [A, B, C]

        // Beispiel mit einem Array von Objekten
        Integer[] originalIntegerArray = {10, 20, 30, 40, 50};
        Integer[] copiedIntegerArray = Arrays.copyOfRange(originalIntegerArray, 2, 5);
        System.out.println(Arrays.toString(copiedIntegerArray)); // Ausgabe: [30, 40, 50]

        // Beispiel mit einem char-Array
        char[] originalCharArray = {'a', 'b', 'c', 'd', 'e'};
        char[] copiedCharArray = Arrays.copyOfRange(originalCharArray, 1, 3);
        System.out.println(Arrays.toString(copiedCharArray)); // Ausgabe: [b, c]
    }
}
31
Q

copyOf() (JAVA)

A

Klasse java.util.Arrays wird** verwendet, um ein Array zu kopieren und ein neues Array mit einer bestimmten Länge** zurückzugeben. Im Gegensatz zu copyOfRange(), das einen bestimmten Teilbereich eines Arrays kopiert, kopiert copyOf() das gesamte Array bis zu einer angegebenen Länge.

import java.util.Arrays;

public class CopyOfExample {
    public static void main(String[] args) {
        // Beispiel mit einem int-Array
        int[] originalIntArray = {1, 2, 3, 4, 5};
        int[] copiedIntArray = Arrays.copyOf(originalIntArray, 3);
        System.out.println(Arrays.toString(copiedIntArray)); // Ausgabe: [1, 2, 3]

        // Beispiel mit einem String-Array
        String[] originalStringArray = {"A", "B", "C", "D", "E"};
        String[] copiedStringArray = Arrays.copyOf(originalStringArray, 2);
        System.out.println(Arrays.toString(copiedStringArray)); // Ausgabe: [A, B]

        // Beispiel mit einem Array von Objekten
        Integer[] originalIntegerArray = {10, 20, 30, 40, 50};
        Integer[] copiedIntegerArray = Arrays.copyOf(originalIntegerArray, 4);
        System.out.println(Arrays.toString(copiedIntegerArray)); // Ausgabe: [10, 20, 30, 40]

        // Beispiel mit einem char-Array
        char[] originalCharArray = {'a', 'b', 'c', 'd', 'e'};
        char[] copiedCharArray = Arrays.copyOf(originalCharArray, 5);
        System.out.println(Arrays.toString(copiedCharArray)); // Ausgabe: [a, b, c, d, e]
    }
}
32
Q

arraycopy() (JAVA)

A

Die Methode arraycopy() in Java wird verwendet, um Elemente zwischen Arrays oder innerhalb desselben Arrays zu kopieren. Im Gegensatz zu copyOf() und copyOfRange() aus der Klasse Arrays, bietet arraycopy() eine flexiblere Möglichkeit, die Kopieroperation durchzuführen, da sie direkten Zugriff auf den Systembereich für Array-Kopieroperationen bietet.

public class ArrayCopyExample {
    public static void main(String[] args) {
        // Quell-Array
        int[] srcArray = {1, 2, 3, 4, 5};
        // Ziel-Array
        int[] destArray = new int[5];

        // Kopieren von srcArray zu destArray
        System.arraycopy(srcArray, 0, destArray, 0, srcArray.length);

        // Ausgabe des Ziel-Arrays
        System.out.println("Ziel-Array nach dem Kopieren:");
        for (int num : destArray) {
            System.out.print(num + " ");
        }
        System.out.println();

        // Veränderung des Quell-Arrays
        srcArray[0] = 10;

        // Ausgabe des Ziel-Arrays nach der Veränderung des Quell-Arrays
        System.out.println("Ziel-Array nach Änderung des Quell-Arrays:");
        for (int num : destArray) {
            System.out.print(num + " ");
        }
        System.out.println();
    }
}
33
Q

fill() (JAVA)

A

Klasse java.util.Arrays wird verwendet, um alle Elemente eines Arrays mit einem bestimmten Wert zu initialisieren.

34
Q

sort() (JAVA)

A

Klasse java.util.Arrays wird verwendet, um die Elemente eines Arrays zu sortieren.

Quicksort-Algorithmus für primitive Datentypen
MergeSort-Algorithmus für Objekt-Arrays.

35
Q

binarySearch() (JAVA)

A

Klasse java.util.Arrays wird verwendet, um nach einem bestimmten Element in einem sortierten Array zu suchen. Sie verwendet den binären Suchalgorithmus, der effizient ist und in logarithmischer Zeit O(log n) arbeitet, wobei n die Anzahl der Elemente im Array ist.

import java.util.Arrays;

public class BinarySearchExample {
    public static void main(String[] args) {
        // Beispiel mit einem int-Array
        int[] intArray = {1, 3, 5, 7, 9};
        int key1 = 5;
        int key2 = 6;
        int index1 = Arrays.binarySearch(intArray, key1);
        int index2 = Arrays.binarySearch(intArray, key2);
        System.out.println("Index von " + key1 + " in intArray: " + index1); // Ausgabe: 2 (Index von 5)
        System.out.println("Index von " + key2 + " in intArray: " + index2); // Ausgabe: -4 (Einfügeposition für 6)

        // Beispiel mit einem String-Array
        String[] stringArray = {"apple", "banana", "orange", "strawberry"};
        String key3 = "banana";
        String key4 = "grape";
        int index3 = Arrays.binarySearch(stringArray, key3);
        int index4 = Arrays.binarySearch(stringArray, key4);
        System.out.println("Index von \"" + key3 + "\" in stringArray: " + index3); // Ausgabe: 1 (Index von "banana")
        System.out.println("Index von \"" + key4 + "\" in stringArray: " + index4); // Ausgabe: -2 (Einfügeposition für "grape")
    }
}
36
Q

Zeitkomplexität Bubblesort ?

A

Zeitkomplexität: 𝑂(𝑛^2)

37
Q

Wie kann der Selectionsort-Algorithmus optimiert werden?

A

Der Selectionsort-Algorithmus kann optimiert werden, indem gleichzeitig nach dem größten und dem kleinsten Element in einem Durchlauf gesuchtwird.

38
Q

Welche Methode wird in Java verwendet, um mehrdimensionale Arrays zu vergleichen?

A

In Java wird die Methode deepEquals(datentyp[] a1, datentyp[] a2) verwendet, um mehrdimensionale Arrays zu vergleichen

39
Q

Wie könnte man die Effizienz des Bubblesort-Algorithmus verbessern?

A

Die Effizienz des Bubblesort-Algorithmus kann verbessert werden, indem man nach jedem vollständigen Durchlauf prüft, ob keine Vertauschungen stattgefundenn haben. Wenn keine Vertauschungen stattgefunden haben, ist das Array bereits sortiert, und der Algorithmus kann vorzeitig beendet werden.

40
Q

Welcher Sortieralgorithmus könnte effizienter als Bubblesort und Selectionsort sein, insbesondere für große Datenmengen?

A

Mergesort und Quicksort sind effizientere Sortieralgorithmen für große Datenmengen im Vergleich zu Bubblesort und Selectionsort.

41
Q

Wie wird ein String in Java explizit erzeugt?

A

Explizit: String str = new String(“Hello”);

42
Q

Vergleich von Strings

A

Mit == vergleicht Referenzen (ob sie auf dasselbe Objekt zeigen).

Mit equals() vergleicht den Inhalt der Strings.

43
Q

Wie wird ein String in Java implizit erzeugt?

A

Implizit: String str2 = “Hello”; (Optimierung durch Compiler möglich)

44
Q

Was passiert, wenn man zwei Strings mit == vergleicht?

A

Es wird überprüft, ob beide Referenzen auf dasselbe Objekt zeigen.

45
Q

Wie vergleicht man den Inhalt zweier Strings korrekt?

A

Mit der Methode equals(), die true zurückgibt, wenn beide Strings denselben Inhalt haben.

46
Q

Was ist die Ausgabe von char z = wort.charAt(2); wenn wort der String “Berlin” ist?

A

Die Ausgabe ist ‘r’, da das Zeichen an der Position 2 im String “Berlin” ‘r’ ist.

47
Q

Was ist die Ausgabe von wort.substring(0, 1) wenn wort der String “Berlin” ist?

A

Die Ausgabe ist “B”, da der Teilstring von Index 0 bis 1 das Zeichen ‘B’ enthält.

48
Q

Wie kann man aus einem String, z.B. “Hello World”, das Wort “World” extrahieren?

A

Mit der Methode substring(), z.B. String part = “Hello World”.substring(6, 11);.

49
Q

Wie kann man Bubblesort optimieren?

A

1) Flagge zu verwenden, die anzeigt, ob während eines Durchlaufs des Arrays ein Austausch stattgefunden hat.
2) Cocktail Shaker Sort. Dieser Algorithmus durchläuft das Array in beide Richtungen abwechselnd.

50
Q

Kann Selectionsort optimiert werden? Welche Beschleunigung kann dadurch erreicht werden?

A

1) kann kleinste am anfand und gleichzitig auch das größte Element gefunden und an das Ende gesetzt werden.