Junior
Jakie są sposoby przetwarzania danych w Java?
sobes.tech AI
Odpowiedź od AI
-
Iteracja:
- Pętle
for,while,do-while. - Iteratory (
Iterator,ListIterator). - Ulepszona pętla
for(foreach).
List<String> data = new ArrayList<>(); data.add("item1"); data.add("item2"); for (String item : data) { System.out.println(item); // Przetwarzanie każdego elementu } - Pętle
-
Strumienie (Streams):
- API do deklaratywnego przetwarzania kolekcji.
- Operacje wysokiego poziomu:
filter,map,reduce,collect. - Obsługują przetwarzanie równoległe.
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); List<Integer> evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) // Filtruj parzyste .collect(Collectors.toList()); // Zbierz w listę -
Równoległe strumienie:
- Rozszerzenie strumieni do automatycznej równoległości.
- Proste użycie:
.parallelStream().
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); int sum = numbers.parallelStream() .mapToInt(Integer::intValue) .sum(); // Równoległe sumowanie -
RxJava / Reactor (Programowanie reaktywne):
- Programowanie reaktywne do asynchronicznego przetwarzania strumieni danych.
- Używa obserwowalnych (
Observable,Flux) i operatorów (map,filter,merge).
// Przykład na RxJava Observable<String> source = Observable.just("Alpha", "Beta", "Gamma"); source.subscribe(s -> System.out.println("Odebrano: " + s)); // Przetwarzanie asynchroniczne -
Apache Spark / Hadoop MapReduce:
-
Frameworki do rozproszonego przetwarzania dużych danych.
-
Odpowiednie do ETL, analityki i przetwarzania na klastrze.
-
(Przykład kodu dla Spark/Hadoop jest zbyt obszerny na krótką odpowiedź, ale istota to rozproszone obliczenia).
-
-
Struktury danych w Java:
- Użycie odpowiednich struktur danych (Arrays, Lists, Sets, Maps) do efektywnego przechowywania i dostępu.
- Na przykład,
HashMapdo szybkiego wyszukiwania po kluczu,HashSetdla unikalnych elementów.
Map<String, Integer> ages = new HashMap<>(); ages.put("Alice", 30); ages.put("Bob", 25); System.out.println(ages.get("Alice")); // Szybki dostęp po kluczu -
Bazy danych (JDBC / ORM):
- Przetwarzanie danych w zewnętrznych bazach.
- JDBC do bezpośredniej interakcji z SQL.
- ORM (Hibernate, JPA) do mapowania obiektowo-relacyjnego.
// Przykład JDBC try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT name, age FROM users")) { while (rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("Użytkownik: " + name + ", Wiek: " + age); // Przetwarzanie danych z BD } } catch (SQLException e) { e.printStackTrace(); }
Wybór metody zależy od wielkości danych, wymagań dotyczących wydajności, równoległości i złożoności logiki przetwarzania.