Skip to content
Advertisement

List of array object iteration in java 8

I am setting the type for sql query result set as List in java. I am trying to convert it into a dto. When I see the List<Object[]> structure from query. It shows

      resultList-ArrayList<E>
       [0....9999]
         [0..99]
          [0]=Object[3]
            [0]="jjj"
            [1]="8787"
            [2]="7686"

So is this expected. How can I access the object values here(jjj,8787…) by setting it to dto.

I tried something like this

       List<Dto> dtoList = resultList.stream().map(obj->{
            Dto dt = new Dto()
            dt.setName(obj[0]);
           ).collect(Collectors.toList()) 

This is not correct as I am not able to access the object Should I do another level of iteration in order to reach that object or is my generic type for result set is right

Thanks

Advertisement

Answer

Try this:

Object[] inner = new Object[]{"jjj", "8787", "7686"};
Object[] outer = new Object[]{inner};
List<Object[]> resultList = new ArrayList<>();
resultList.add(outer);

List<Dto> dtos;
dtos = resultList.stream()
                 .flatMap((Object[] objArr) -> {
                              Object[] subArr = (Object[]) objArr[0];
                              return Arrays.asList(subArr).stream()
                                                          .map(obj -> obj.toString());
                          })
                 .map(name -> {
                          Dto dto = new Dto();
                          dto.setName(name);
                          return dto;
                      })
                 .collect(Collectors.toList());
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement