/ / int [] [] prevádza - na -> Vektor <Vektor <Dvojnásobný>> - java, vektor, dvojitý, int

int [] [] konvertovať - ​​do -> Vector <Vector <Double> - java, vektor, dvojité, int

Chcel by som previesť integer [] [] na a Vector<Vector<Double>>, Po dlhom čítaní sa zdá, že nikto neopustil avyhľadateľný príspevok na webe pre niečo podobného charakteru. veľa int vektor na zdvojenie vektora, arraylist na vektor, atď Bohužiaľ som nenašiel to, čo hľadám. Takže ... Dozvedel by niekto z vás o tom vhodnú metódu? int[][] na reťazce, ktoré potom skonvertujte na vector<vector<Double>>, názory Bolo by niečo také užitočné, tj. prevádzam moje pole na pole objektov

Object[] a1d = { "Hello World", new Date(), Calendar.getInstance(), };
// Arrays.asList(Object[]) --> List
List l = Arrays.asList(a1d);

// Vector contstructor takes Collection
// List is a subclass of Collection
Vector v;
v = new Vector(l);

// Or, more simply:
v = new Vector(Arrays.asList(a1d));

Inak by ste mi mohli dať lepší príklad, ktorý môže mať menej krokov? Ešte raz vďaka Bunch.

odpovede:

1 pre odpoveď č. 1

Vektor je stará trieda, ktorá nie je zastaraná, ale už by sa nemala používať. Namiesto toho použite ArrayList.

Mali by ste používať rozhranie LIst namiesto použitia konkrétnej triedy Vector. Program na rozhraniach, nie na implementáciách.

Navyše opakované konverzie, ako je táto, ukazujú nedostatok dizajnu. Zapuzdrujte svoje údaje do použiteľných objektov, ktoré nepotrebujú konverziu zakaždým, keď potrebujete novú funkciu.

Ak to skutočne potrebujete: použite slučky:

int[][] array = ...;
List<List<Double>> outer = new Vector<List<Double>>();
for (int[] row : array) {
List<Double> inner = new Vector<Double>();
for (int i : row) {
inner.add(Double.valueOf(i));
}
outer.add(inner);
}

Premena z int na STING a potom z String na Double je zbytočná.


2 pre odpoveď č. 2

Po prvé: vyhnúť sa Vector, je zastaraný; použitie ArrayList namiesto toho (alebo niečo podobné). Prečítajte si viac tu

Po druhé, ak by som musel previesť 2d pole do zoznamu zoznamov, udržal by som to veľmi jednoduché:

List<List<Double>> list = new ArrayList<ArrayList<Double>>();
for(int i=0; i<100; i++) //100 or whatever the size is..
{
List<Double> tmp = new ArrayList<Double>();
tmp = Arrays.asList( ... );
list.add( tmp );
}

Dúfam, že som váš problém pochopil správne.


0 pre odpoveď č. 3

Vektor je jednorozmerný. Mohli by ste mať Vektor vektorov na simuláciu 2D poľa:

    Vector v = new Vector();
for (int i = 0; i < 100; i++) {
v.add(new Vector());
}

//add something to a Vector
((Vector) v.get(50)).add("Hello, world!");

//get it again
String str = (String) ((Vector) v.get(50)).get(0);

Poznámka: Vector je stará zbierka, ktorá sa neodporúča používať