Lista w liscie, jak uzyskac dostep do nich jako list. Iloczyn kartezjanski na tych listach

0

Mam stowrzyc klase wspierajaca listy w dodatkowych operacjach. XList dziedziczy po ArrayLiscie. Mamy przykladowe 3 listy:

    List<String> sa = Arrays.asList( "a", "b"); 
    List<String> sb = Arrays.asList( "X", "Y", "Z" );
    XList<String> sc = XList.charsOf( "12" );// <---funkcja zwracajaca liste z [1,2]
    XList toCombine = XList.of(sa, sb, sc);  //<----funcka zwracajaca liste list.
    System.out.println(toCombine.get(1).getClass()); // <----test: java.util.Arrays$ArrayList
    XList<XList<String>> cres = toCombine.combine();
    System.out.println(cres);

Funkcja combine ma nam zwrocic iloczyn kartezjanski i teraz moje pytanie jak dostac sie do wielkosci list listy toCombine. Na razie chce wyznaczyc sama wielkosc nowej Listy

	public XList<T> combine(){
		int count = 0;
		for(int i=0; i<this.size(); i++){
			ArrayList<T> al = (ArrayList<T>) this.get(i);
			count*=al.size();
		}
		System.out.println();
		return null;

No i wyskakuje java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
Dlaczego i jak to naprawic??

0

No a czego sie niby spodziewasz? o_O List<T> to NIE JEST to samo co ArrayList<T>! Skąd niby pomysł że Arrays.asList() zwraca ci ArrayList?

0

nie wydaje mi sie zeby to byl dobry pomysl aby XList dziedziczylo z ArrayList. imo albo zaimplementuj List albo zrob z tego utility class ze statycznymi metodami operujacymi na List

1 użytkowników online, w tym zalogowanych: 0, gości: 1