Interface PqList


public interface PqList
Type-safe list interface for reading Parquet list values.

Provides type-specific accessor methods for iterating over list elements. For primitive int/long/double lists, use the dedicated types (PqIntList, PqLongList, PqDoubleList) via rowReader.getListOfInts(), etc.

// String list
PqList tags = rowReader.getList("tags");
for (String tag : tags.strings()) {
    System.out.println(tag);
}

// Nested struct list
PqList items = rowReader.getList("items");
for (PqStruct item : items.structs()) {
    String name = item.getString("name");
}

// Nested list (2D matrix)
PqList matrix = rowReader.getList("matrix");
for (PqIntList innerList : matrix.intLists()) {
    for (var it = innerList.iterator(); it.hasNext(); ) {
        int value = it.nextInt();
    }
}

// Triple nested list (3D cube)
PqList cube = rowReader.getList("cube");
for (PqList plane : cube.lists()) {
    for (PqIntList innerList : plane.intLists()) {
        // ...
    }
}
  • Method Details

    • size

      int size()
      Get the number of elements in this list.
      Returns:
      the element count
    • isEmpty

      boolean isEmpty()
      Check if this list is empty.
      Returns:
      true if the list has no elements
    • get

      Object get(int index)
      Get a raw element by index without type conversion.
      Parameters:
      index - the element index (0-based)
      Returns:
      the raw element value, or null if the element is null
      Throws:
      IndexOutOfBoundsException - if index is out of range
    • isNull

      boolean isNull(int index)
      Check if an element is null by index.
      Parameters:
      index - the element index (0-based)
      Returns:
      true if the element is null
    • values

      Iterable<Object> values()
      Iterate over elements as raw objects without type conversion.
    • ints

      Iterable<Integer> ints()
      Iterate over elements as int values.
    • longs

      Iterable<Long> longs()
      Iterate over elements as long values.
    • floats

      Iterable<Float> floats()
      Iterate over elements as float values.
    • doubles

      Iterable<Double> doubles()
      Iterate over elements as double values.
    • booleans

      Iterable<Boolean> booleans()
      Iterate over elements as boolean values.
    • strings

      Iterable<String> strings()
      Iterate over elements as String values.
    • binaries

      Iterable<byte[]> binaries()
      Iterate over elements as binary (byte[]) values.
    • dates

      Iterate over elements as LocalDate values.
    • times

      Iterate over elements as LocalTime values.
    • timestamps

      Iterable<Instant> timestamps()
      Iterate over elements as Instant (timestamp) values.
    • decimals

      Iterable<BigDecimal> decimals()
      Iterate over elements as BigDecimal values.
    • uuids

      Iterable<UUID> uuids()
      Iterate over elements as UUID values.
    • structs

      Iterable<PqStruct> structs()
      Iterate over elements as nested structs.
    • lists

      Iterable<PqList> lists()
      Iterate over elements as nested lists. Use this for list-of-list structures.
    • intLists

      Iterable<PqIntList> intLists()
      Iterate over elements as nested int lists. Use this for list-of-int-list structures (e.g., 2D int matrix).
    • longLists

      Iterable<PqLongList> longLists()
      Iterate over elements as nested long lists. Use this for list-of-long-list structures.
    • doubleLists

      Iterable<PqDoubleList> doubleLists()
      Iterate over elements as nested double lists. Use this for list-of-double-list structures.
    • maps

      Iterable<PqMap> maps()
      Iterate over elements as nested maps.