Good Evening Everyone.
So I have a little problem with List in Java. Let's start from beggining. Here is method which returns list from Query in HQL :
public List<PraktykiEntity> getPracticeOfStudent(Long nrAlbumu) {
        Query query = em.createQuery("SELECT p FROM PraktykiEntity p WHERE p.nrAlbumu=?1");
        query.setParameter(1, nrAlbumu);
        List list = query.getResultList();
        if (!list.isEmpty()) {
            return list;
        } else {
            return null;
        }
    }
then a helper class :
public class PraktykaInfo {
    public Long idPraktykiStudenckiej; //idOfStudentPractice
    public SzablonyPraktykEntity szablonPraktyki; //templateOfPractice
    public PraktykodawcyEntity praktykodawca; //Employer
    public StatusyEntity statusPraktyki; //statusOfPractice
    public List<KierunkiStudiowEntity> kierunek; //Course
    public TypyPraktykEntity typPraktyki; //typeOfPractice
    public LataAkademickieEntity rokAkademicki; //academicYear
    public List<StudenciEntity> student; 
    public List<OpiekunowiePraktykEntity> opiekunPraktyki; //tutor
    public List<KoordynatorzyPraktykEntity> koordynatorPraktyki; //coordinator
    public AdresyEntity adresPracodawcy; //Employer's address
    public PorozumieniaEntity porozumienie; //agreement}
And what i want to do - get List<PraktykiEntity> from first method, then initialize new helper List<PraktykaInfo> and iterate through it, set correct object from first list and then return it. At first i thought list.get(i) will work but im getting error "index out of bounds". I've heard about list.add and .set but don't know how to use them. Here is the method. And i do know that info.get(i) has nothing that's why i am encountering error "index out of bounds"
public List<PraktykaInfo> getPracticeOfStudent(Long nrAlbumu) {
        List<PraktykiEntity> list = ipraktykiDAO.getPracticeOfStudent(nrAlbumu);
        List<PraktykaInfo> info = new ArrayList<PraktykaInfo>();
        //System.out.println(list.size());
        for(int i = 0; i<list.size(); i++) {
            PraktykiEntity practice = ipraktykiDAO.getRow(list.get(i).getIdPraktykiStudenckiej());
            if(practice !=null) {
                info.get(i).setIdPraktykiStudenckiej(practice.getIdPraktykiStudenckiej());
                info.get(i).setSzablonPraktyki(iszablonyPraktykDAO.getTemplate(practice.getIdSzablonu()));
                info.get(i).setPraktykodawca(ipraktykodawcyDAO.findEmployer(practice.getIdPraktykodawcy()));
                info.get(i).setStatusPraktyki(istatusyDAO.getStatus(practice.getIdStatusu()));
                info.get(i).setKierunek(ikierunkiStudiowDAO.getCourseInfo(practice.getIdKierunku()));
                info.get(i).setTypPraktyki(itypyPraktykDAO.getTypeOfTraineeship(practice.getIdTypuPraktyki()));
                info.get(i).setRokAkademicki(ilataAkademickieDAO.getYearOfCourse(practice.getIdRokuAkademickiego()));
                if(practice.getNrAlbumu() !=null) {
                    info.get(i).setStudent(istudenciDAO.getStudentInfo(practice.getNrAlbumu()));
                }
                info.get(i).setOpiekunPraktyki(iopiekunowiePraktykDAO.getTutorInfo(practice.getIdOpiekunaPraktyk()));
                info.get(i).setKoordynatorPraktyki(ikoordynatorzyPraktykDAO.getCoordinatorInfo(practice.getIdKoordynatoraPraktyk()));
                info.get(i).setAdresPracodawcy(iadresyDAO.findByIdAdresu(practice.getIdAdresu()));
                if(practice.getIdPorozumienia() !=null) {
                    info.get(i).setPorozumienie(iporozumieniaDAO.getAgreement(practice.getIdPorozumienia()));
                }
            } else {
                return null;
            }
        }
        return info;
    }
 
     
     
    
!=null– papski Mar 20 '15 at 21:56they're necessary because methods from IF goes to EntityManager.find and when it returns null i do get exception, i can fix that by making new method that returns list from query, but, that IF was simplier and faster to make.