Yazar |
|
eerdil
Kayıt: 13.10.2009 |
|
Arkadaslar yazdıgım bir kod da ArrayList<ArrayList<Integer>> seklinde bir yapı kullanmak istiyorum. Fakat run edince programı istedigim sekilde bir cıktı vermiyor. Ornek kod asagıdaki sekilde.
ArrayList<ArrayList<Integer>> temp = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> empty = new ArrayList<Integer>();
temp.add(empty);
temp.add(empty);
temp.get(0).add(10);
temp.get(0).add(0,3);
temp.get(1).add(5);
System.out.println(temp.get(0));
System.out.println(temp.get(1));
program cıktısı:
[3, 10, 5]
[3, 10, 5]
fakat ben su sekilde bir cıktı istiyorum.
[3, 10]
[5]
Yani kısacası istedigim arraylist e sayı eklemek istiyorum. Burda sıfırıncı arrayliste ekledigim sayılar 1. arraylisti de yazdırırken gorunuyor.
Bu kodu nasıl duzeltebilirim. Eger boyle yapmak mumkun deilse ne tur bir yapı kullanabilirim. Yardımlarınız icin tesekkurler...
|
|
Yazar |
|
idristas
istanbul
Kayıt: 26.02.2010 |
|
eerdil yazdi | Arkadaslar yazdıgım bir kod da ArrayList<ArrayList<Integer>> seklinde bir yapı kullanmak istiyorum. Fakat run edince programı istedigim sekilde bir cıktı vermiyor. Ornek kod asagıdaki sekilde.
ArrayList<ArrayList<Integer>> temp = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> empty = new ArrayList<Integer>();
temp.add(empty);
temp.add(empty);
temp.get(0).add(10);
temp.get(0).add(0,3);
temp.get(1).add(5);
System.out.println(temp.get(0));
System.out.println(temp.get(1));
program cıktısı:
[3, 10, 5]
[3, 10, 5]
fakat ben su sekilde bir cıktı istiyorum.
[3, 10]
[5]
Yani kısacası istedigim arraylist e sayı eklemek istiyorum. Burda sıfırıncı arrayliste ekledigim sayılar 1. arraylisti de yazdırırken gorunuyor.
Bu kodu nasıl duzeltebilirim. Eger boyle yapmak mumkun deilse ne tur bir yapı kullanabilirim. Yardımlarınız icin tesekkurler... |
ArrayList<Integer>temp2 = (ArrayList<Integer>)temp.get(0);
temp2.add(10);
temp2.add(0,3);
temp2 = (ArrayList<Integer>)temp.get(1);
temp2.add(5);
şeklinde dene
|
|
Yazar |
|
idristas
istanbul
Kayıt: 26.02.2010 |
|
eerdil yazdi | Arkadaslar yazdıgım bir kod da ArrayList<ArrayList<Integer>> seklinde bir yapı kullanmak istiyorum. Fakat run edince programı istedigim sekilde bir cıktı vermiyor. Ornek kod asagıdaki sekilde.
ArrayList<ArrayList<Integer>> temp = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> empty = new ArrayList<Integer>();
temp.add(empty);
temp.add(empty);
temp.get(0).add(10);
temp.get(0).add(0,3);
temp.get(1).add(5);
System.out.println(temp.get(0));
System.out.println(temp.get(1));
program cıktısı:
[3, 10, 5]
[3, 10, 5]
fakat ben su sekilde bir cıktı istiyorum.
[3, 10]
[5]
Yani kısacası istedigim arraylist e sayı eklemek istiyorum. Burda sıfırıncı arrayliste ekledigim sayılar 1. arraylisti de yazdırırken gorunuyor.
Bu kodu nasıl duzeltebilirim. Eger boyle yapmak mumkun deilse ne tur bir yapı kullanabilirim. Yardımlarınız icin tesekkurler... |
temp.add(empty);
temp.add(empty);
sen iki defa aynı elemanı ekliyorsun. dolayısıyla 1. ve 2. arraylist zaten aynı arraylist
ArrayList<Integer> empty = new ArrayList<Integer>();
temp.add(empty);
empty = new ArrayList<Integer>();
temp.add(empty);
şeklinde olmalı
ya da
temp.add(new ArrayList<Integer>());
temp.add(new ArrayList<Integer>());
şeklinde de olur.
|
|
Yazar |
|
eerdil
Kayıt: 13.10.2009 |
|
Bu sekilde de aynı sonucu veriyor. Problemi daha acık anlatsam daha iyi olur belki. Skip List implement etmek istiyorum. Buna gore dosyadan sayı ve hangi seviyede olacagı veriliyor. Ornegin
10 1 20 2 13 3 14 3 8 1 seklinde bir input verildigi zaman cıktı su sekilde olmalı
8 10 13 14 20 // 1. seviye (sayılar kendi seviyelerinden baslanıp alt butun seviyelere ekleniyor bu yuzden 1. seviyede tum sayılar olacak ayrıca sayılar sıralı olarak eklenecek)
13 14 20 // 2. seviye
20 // 3. seviye
Burada seviye sayısı ve her seviyede kac sayı olacagı belli olmadıgı icin ArrayList<ArrayList<Integer>> kullanmayı dusundum.
|
|
Yazar |
|
idristas
istanbul
Kayıt: 26.02.2010 |
|
eerdil yazdi | Bu sekilde de aynı sonucu veriyor. Problemi daha acık anlatsam daha iyi olur belki. Skip List implement etmek istiyorum. Buna gore dosyadan sayı ve hangi seviyede olacagı veriliyor. Ornegin
10 1 20 2 13 3 14 3 8 1 seklinde bir input verildigi zaman cıktı su sekilde olmalı
8 10 13 14 20 // 1. seviye (sayılar kendi seviyelerinden baslanıp alt butun seviyelere ekleniyor bu yuzden 1. seviyede tum sayılar olacak ayrıca sayılar sıralı olarak eklenecek)
13 14 20 // 2. seviye
20 // 3. seviye
Burada seviye sayısı ve her seviyede kac sayı olacagı belli olmadıgı icin ArrayList<ArrayList<Integer>> kullanmayı dusundum. |
temp.add(new ArrayList<Integer>());
temp.add(new ArrayList<Integer>());
temp'e bu şekilde ekle
|
|
Yazar |
|
eerdil
Kayıt: 13.10.2009 |
|
2. mesajını simdi gordum bu sekilde dogru calıstı program.
Tesekkur ederim ilgilendigin icin.
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | |