Wyjaśnienie dwóch zadań z tablic

0

Witam,
mam problem z dwoma zadaniami i za nic nie mogę dojść do ich poprawnego rozwiązania więc uznałem że zapytam bardziej doświadczonych osób.
Zadanie numer 3 zupełnie mi nie idzie a w zadaniu numer 4 mam problem z porównaniem dwóch tablic przy ich posortowaniu. Tablice jednowymiarowe normalnie mogłem porównać znakami większy/mniejszy, ale dwuwymiarowych już się tak porównywać nie da. Próbowałem w pewien sposób przypisać dwie tablice jednowymiarowe do jednej dwuwymiarowej i wtedy posortować z pozytywnym skutkiem aczkolwiek leci to tak że jedna tablica idzie przez swoją całość i wtedy druga przez co druga mi się sortuje w połowie (1, 2, 3, 4, 1, 2, 3, 4).
Tematy które przerobiłem i dzięki którym mam to zrobić: deklaracje zmiennych, operacje bitowe, instrukcje warunkowe, pętle oraz tablice. Kodu nie wrzucam bo i tak trzeba zacząć od początku. Treść zadania:
zadanie1 (1).pngzadanie1 (2).png
Tablica char do zadania trzeciego:
char[][] tab = {
{'S', 'a', 'm', 's', 'u', 'n', 'g'},
{'N', 'o', 'k', 'i', 'a'},
{'A', 'p', 'p', 'l', 'e'},
{'B', 'l', 'a', 'c', 'k', 'B', 'e', 'r', 'r', 'y'},
{'A', 'l', 'c', 'a', 't', 'e', 'l'},
{'S', 'o', 'n', 'y'},
{'J', 'o', 'l', 'l', 'a'}
};

2
for(int i = 0;  i< tab.length; i++){
    final String s = new String(tab[i]);
    System.out.println("1: "+(s.toLowerCase().chars().distinct().count() == s.length()));
    System.out.println("2: "+(s.chars().sum() > 255));
    System.out.println("3: "+(s.chars().anyMatch(c -> 'i' == c)));
    //... keep going...
}
1

Masz szkielet z początkiem, kombinuj dalej ;)


public class Main {
    public static void main(String[] args) {
        char[][] tab = {
                {'S', 'a', 'm', 's', 'u', 'n', 'g'},
                {'N', 'o', 'k', 'i', 'a'},
                {'A', 'p', 'p', 'l', 'e'},
                {'B', 'l', 'a', 'c', 'k', 'B', 'e', 'r', 'r', 'y'},
                {'A', 'l', 'c', 'a', 't', 'e', 'l'},
                {'S', 'o', 'n', 'y'},
                {'J', 'o', 'l', 'l', 'a'}
        };

        for(int i = 0; i< tab.length; i++){
            char[] line = tab[i];
            int conditionsMet = 0;
            if(hasDuplicates(line)) conditionsMet++;
            if(sumOfChars(line)> 255) conditionsMet++;
            if(containsChar(line, 'i')) conditionsMet++;
            
            if(conditionsMet>=3){
                System.out.println(new String(line));
            }
        }
    }

    private static boolean hasDuplicates(char[] line) {
        return false;
    }

    private static boolean containsChar(char[] line, char character) {
        return false;
    }

    private static int sumOfChars(char[] line) {
        return 0;
    }

    private static boolean hasDuplicatesIgnoreCase(char[] line) {
        return false;
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1