Toon posts:

[JAVA] van ArrayList naar List

Pagina: 1
Acties:
  • 177 views

  • Khallouki
  • Registratie: Oktober 2006
  • Laatst online: 28-05 16:08
Beste allen,

Ik zit met het volgende.

Ik heb een method die als parameter een ArrayList ontvangt. Deze method moet de ArrayList omzetten naar een List. De returntype van de method is ook een List.


Ik heb dit geprobeerd.

public List maakList(ArrayList list){
List listje = Arrays.asList(list);
return listje;
}

Maar dit schijnt niet te lukken hij returned alsnog een ArrayList. De compiler geeft ook geen error bij deze method.
Kan iemand mij hierbij helpen?

  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 19-03 10:57

voodooless

Sound is no voodoo!

List is een interface, en ArrayList implementeert deze. Een ArrayList IS dus al een List, conversie is niet nodig, gewoon casten is voldoende.

Als de compiler geen error geeft, waar is dan het probleem? Daarom gaat het dus mis:

asList doet heel wat anders. Het verwacht namelijk een arbitrair aantal objecten en converteert deze naar een List. Jij geeft nu de ArrayList mee, met als resultaat een List<ArrayList>.

[Voor 43% gewijzigd door voodooless op 26-05-2011 20:50]

Do diamonds shine on the dark side of the moon :?


  • ReenL
  • Registratie: Augustus 2010
  • Laatst online: 14-09-2022
http://download.oracle.co.../java/util/ArrayList.html
All Implemented Interfaces:
Cloneable, Collection, List, RandomAccess, Serializable

  • Khallouki
  • Registratie: Oktober 2006
  • Laatst online: 28-05 16:08
voodooless schreef op donderdag 26 mei 2011 @ 20:47:
List is een interface, en ArrayList implementeert deze. Een ArrayList IS dus al een List, conversie is niet nodig, gewoon casten is voldoende.

Als de compiler geen error geeft, waar is dan het probleem?
Het probleem ligt em bij Hibernate:

Hibernate zegt namelijk dit:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.Set

Hibernate kan de ArrayList niet casten naar een Set, hij heeft hiervoor een List nodig.

  • voodooless
  • Registratie: Januari 2002
  • Laatst online: 19-03 10:57

voodooless

Sound is no voodoo!

Set != List , Dus ook een ArrayList kun je niet casten naar een Set.

[Voor 14% gewijzigd door voodooless op 26-05-2011 20:52]

Do diamonds shine on the dark side of the moon :?


  • lembregtse
  • Registratie: Juni 2007
  • Laatst online: 25-05 18:24
Probeer eens

Set resultaatSet = new HashSet(jouwArrayList);

Beetje googlen: http://www.javadb.com/con...-set-arraylist-to-hashset

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 12:47

Creepy

Tactical Espionage Splatterer

Beetje googlen, maar ook de daadwerkelijke foutmelding lezen zou een stuk schelen.

Anyway, ik denk dat je er wel uit moet komen. Als je googled op "arraylist to set" o.i.d. kom je echt ladingen links tegen met oplossingen ;) Probeer voor een eventuele volgende keer eerst heel even echt te kijken wat de foutmelding is, want dan ben je met 1 gerichte zoekopdracht direct waar je wezen moet, zelfs zonder echte kennis van java.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have star problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee