Sobes.tech
Junior

Kādi ir datu apstrādes veidi Java?

sobes.tech AI

Atbilde no AI

  1. Iterācija:

    • for, while, do-while cilpas.
    • Iteratori (Iterator, ListIterator).
    • Paplašinātā for cilpa (foreach).
    List<String> data = new ArrayList<>();
    data.add("item1");
    data.add("item2");
    
    for (String item : data) {
        System.out.println(item); // Katra elementa apstrāde
    }
    
  2. Plūsmas (Streams):

    • API deklaratīvai kolekciju apstrādei.
    • Augsta līmeņa operācijas: filter, map, reduce, collect.
    • Atbalsta paralēlu apstrādi.
    List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
    
    List<Integer> evenNumbers = numbers.stream()
                                       .filter(n -> n % 2 == 0) // Filtrēt pāra skaitļus
                                       .collect(Collectors.toList()); // Savākt sarakstā
    
  3. Paralēlās plūsmas (Parallel Streams):

    • Paplašinājums plūsmām automātiskai paralēlizācijai.
    • Vienkārša lietošana: .parallelStream().
    List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
    
    int sum = numbers.parallelStream()
                     .mapToInt(Integer::intValue)
                     .sum(); // Paralēla summēšana
    
  4. RxJava / Reactor (Reaktīvā programmēšana):

    • Reaktīvā programmēšana asīnhronai plūsmu apstrādei.
    • Izmanto novērojamās (Observable, Flux) un operatorus (map, filter, merge).
    // Piemērs ar RxJava
    Observable<String> source = Observable.just("Alpha", "Beta", "Gamma");
    
    source.subscribe(s -> System.out.println("Saņemts: " + s)); // Katras elementa apstrāde asīnhroni
    
  5. Apache Spark / Hadoop MapReduce:

    • Izplatīto datu apstrādes ietvari.

    • Piemērots ETL procesiem, analītikai un datu apstrādei klastera mērogā.

    • (Koda piemērs Spark/Hadoop ir pārāk apjomīgs īsam atbildei, bet būtība ir izplatītās skaitļošanas metodes).

  6. Java datu struktūras:

    • Atbilstošu datu struktūru (Arrays, Lists, Sets, Maps) izmantošana efektīvai datu glabāšanai un piekļuvei.
    • Piemēram, HashMap ātrai meklēšanai pēc atslēgas, HashSet unikāliem elementiem.
    Map<String, Integer> ages = new HashMap<>();
    ages.put("Alice", 30);
    ages.put("Bob", 25);
    
    System.out.println(ages.get("Alice")); // Ātra piekļuve datiem pēc atslēgas
    
  7. Datubāzes (JDBC / ORM):

    • Datu apstrāde ārējos datu bāzēs.
    • JDBC tiešai SQL saskarnes izmantošanai.
    • ORM (Hibernate, JPA) objektu-reliģiskā kartēšana.
    // Piemērs ar 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("Lietotājs: " + name + ", Vecums: " + age); // Datu apstrāde no DB
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    

Izvēle ir atkarīga no datu apjoma, veiktspējas prasībām, paralēlismu un apstrādes loģikas sarežģītības.