大家好!我现在遇到一个问题,就是在list表里边存储了list,读取的时候出现问题了,我现在把我的代码贴上来,再把问题列出来,请大家帮忙解决一下。谢谢了。
import java.io.*;
import java.util.*;class data{
public List mlist=new ArrayList();
//public String ms="sasgsda";
public data(List list){
this.mlist=list;
//this.ms=s;
/*for(int i=0;i<3;i++){
list.add(i);
}*/

}

}
public class test {
    
    
public static void main(String [] args){
 List list=new ArrayList();
 List list2=new ArrayList();
 data mdata=new data(list);
 List llist=new ArrayList();
for(int i=0;i<3;i++){
//List list=new ArrayList();
list.add(i);
}
for(int j=0;j<3;j++){
list2.add(j+4);
}

llist.add(list);
llist.add(list2);
//llist.add(new data(list,"sagsad"));
llist.add(mdata.mlist);
//llist.add(mdata.mlist+mdata.ms);
Iterator it=list.iterator();
while(it.hasNext()){
String ss=it.next().toString();
System.out.println(ss);
}
System.out.println(llist);
System.out.println("-------------------------");
Iterator iter=llist.iterator();
for(int i=0;i<llist.size();i++){
Iterator itermlist=((List)llist.get(i)).iterator();
while(itermlist.hasNext()){
String s=itermlist.next().toString();
System.out.println(s);
}
}
}
}
如果这样的话是一点问题都没有,可以读取list列表中list的值,但是如果外部的list存储了一个list+字符串的类对象,编译就会报转型错误的错。
代码如下:
import java.io.*;
import java.util.*;class data{
public List mlist=new ArrayList();
public String ms="";
public data(List list,String s){
this.mlist=list;
this.ms=s;
/*for(int i=0;i<3;i++){
list.add(i);
}*/

}

}
public class test {
    
    
public static void main(String [] args){
 List list=new ArrayList();
 List list2=new ArrayList();
 data mdata=new data(list,"sasgsd");
 List llist=new ArrayList();
for(int i=0;i<3;i++){
//List list=new ArrayList();
list.add(i);
}
for(int j=0;j<3;j++){
list2.add(j+4);
}

llist.add(list);
llist.add(list2);
//llist.add(new data(list,"sagsad"));
//llist.add(mdata.mlist);
llist.add(mdata.mlist+mdata.ms);
Iterator it=list.iterator();
while(it.hasNext()){
String ss=it.next().toString();
System.out.println(ss);
}
System.out.println(llist);
System.out.println("-------------------------");
Iterator iter=llist.iterator();
for(int i=0;i<llist.size();i++){
Iterator itermlist=((List)llist.get(i)).iterator();
while(itermlist.hasNext()){
String s=itermlist.next().toString();
System.out.println(s);
}
}
}
}请问如果我想达到下面的这个目的,该程序该怎么改呢?谢谢!!

解决方案 »

  1.   

    for(int i=0;i<3;i++){
    //List list=new ArrayList();
    list.add(i);
    }
    ---------------------------------------------
    这个编译能过去吗?
      

  2.   

    可以,因为我在上边已经定义了一个List对象.上面的代码没问题.主要是下面的代码list中存了一个有list和字符串的对象,那个读不过去.
      

  3.   

    list中存了一个有list和字符串的对象
    -------------
    这个没什么问题
    出什么错误了?
      

  4.   

    可以再定义一个List list3来存mdata.ms,然后用llist.add(list3);这样就不会出现错误了.import java.io.*;
    import java.util.*;class data{
    public List mlist=new ArrayList();
    public String ms="";
    public data(List list,String s){
    this.mlist=list;
    this.ms=s;
    /*for(int i=0;i<3;i++){
    list.add(i);
    }*/}}
    public class test {
        
        
    public static void main(String [] args){
     List list=new ArrayList();
     List list2=new ArrayList();
     List list3=new ArrayList();
     data mdata=new data(list,"sasgsd");
     List llist=new ArrayList();
    for(int i=0;i<3;i++){
    //List list=new ArrayList();
    list.add(i);
    }
    for(int j=0;j<3;j++){
    list2.add(j+4);
    }llist.add(list);
    llist.add(list2);
    //llist.add(new data(list,"sagsad"));
    //llist.add(mdata.mlist);
    llist.add(mdata.mlist);
    list3.add(mdata.ms);
    llist.add(list3);
    Iterator it=list.iterator();
    while(it.hasNext()){
    String ss=it.next().toString();
    System.out.println(ss);
    }
    System.out.println(llist);
    System.out.println("-------------------------");
    Iterator iter=llist.iterator();
    for(int i=0;i<llist.size();i++){
    Iterator itermlist=((List)llist.get(i)).iterator();
    while(itermlist.hasNext()){
    String s=itermlist.next().toString();
    System.out.println(s);
    }
    }
    }
    }