当前位置: 代码迷 >> J2SE >> 【】ArrayList的嵌套有关问题
  详细解决方案

【】ArrayList的嵌套有关问题

热度:240   发布时间:2016-04-24 01:41:42.0
【在线等】ArrayList的嵌套问题
我是新手,请教一个ArrayList嵌套的问题。
有个二维数组:
a,bc,.....(每行元素个数不定)
d,ef,.....
.
.
.
(元素行数不定)

  ArrayList pages_l=new ArrayList();
  ArrayList pages_r=new ArrayList();

  pages_l.add("a");
  pages_l.add("bc");
  .....
  pages_r.add((ArrayList)(pages_l));

  pages_l.add("d");
  pages_l.add("ef");
  .....
  pages_r.add((ArrayList)(pages_l));
.....

那么,取值的时候,我想取第2行,第2个元素 ef :

((ArrayList)pagesinfo.get(1)).get(1).toString();

结果取到的是第1行第2个元素bc !!!

后来我试了下,假如第1行是3个元素,那么,((ArrayList)pagesinfo.get(0)).get(3+2).toString();这样才能取到 ef
也就是说pages_r始终是个一维的数组,请教是为什么呢,,,,怎么样才能实现二维数组呢?


------解决方案--------------------
你的pages_l是同一个

每次add后,重新new ArrayList
------解决方案--------------------
我写了个例子,对你有帮助。
Java code
import java.util.ArrayList;public class Test {    public static void main(String[] args) {        ArrayList col_lst = null;        ArrayList row_lst = null;        // 行        row_lst = new ArrayList();        // 第一列        col_lst = new ArrayList();        col_lst.add("a");// 第一行,第一列        col_lst.add("bc");// 第一行,第二列        row_lst.add(col_lst);        // 第二列        col_lst = new ArrayList();        col_lst.add("d");// 第二行,第一列        col_lst.add("ef");// 第二行,第二列        row_lst.add(col_lst);        String element1 = ((ArrayList) (row_lst.get(0))).get(1).toString();        System.out.println(" 第一行,第二列:" + element1);        String element2 = ((ArrayList) (row_lst.get(1))).get(1).toString();        System.out.println(" 第二行,第二列:" + element2);    }}
------解决方案--------------------
Java code
你在添加 pages_l.add("d");         pages_l.add("ef"); 时,pages_l已经有a,bc两个元素了,所以结果是a,bca,bc,d,ef解决办法,每行一个ArrayList
  相关解决方案