Inutile dire che quel codice e veramente brutto da vedere, ma non ho capito esattamente cos'è che non ti torna.
é per caso il fatto che con questo :
System.out.println("ID:"+temp.getId()+" ANS:"+temp.getAnswer()+" CONT:"+contentList.toString());

Ti viene stampato
[Match@73e7287a] e non per caso ListMatch[....] ?