随笔-11  评论-5  文章-1  trackbacks-0

   数组和数组列表之间有着重大的区别。数组是Java语言的一个特征,对于每个元素类型T,都有数组类型T[];然而,ArrayList类是个定义java.util包中的类库。这是一个存放object类型元素的"普通性"的类型。要注意的是,要从数组列表中提取元素时,需要进行类型转换。
  使用add方法可以向数组列表中添加新元素:
   ArrayList staff = new ArrayList();
   staff.add(new Employee(....));
   staff.add(new Employee(....));
   ArrayList类管理了一个Object引用的内部数组。最终,可能会用完数组的空间。如果调用了add,而内部数组已经满了,数组列表将自动创建了一个更大的数组,并自动把小数组中的对象拷贝到大数组中
  Size方法返回数组列表的实际元素个数
    staff.size()    它等价于数组a的a.length   
   访问数组列表元素
因为 ArrayList类不是Java语言的一部分,它只是个提供在标准库中、由某人编写的工具类,并不像在访问数组元素时可以使用[]语法那

样,要存取或改变数组元素,你必须使用get和set方法
   要设置第i个元素,需要使用:
   staff.set(i,harry);
得到数组列表元素要更复杂一些,因为get方法返回的类型是Object,你还需要把它转换为想要的类型
   Employee e = (Employee)staff.get(i); 它等价于Employee e = a[i];

   最后总结一下:
 无需指定数组大小
用add增添任意多的元素;
用size()代替length计算元素的个数;
用(Employee)a.get(i)代替a[i]访问元素i;

public  Collection setRollBack(QueueVB job)  throws  CustomException
    
{
        
        String sqlselect 
=   " select FileName from JobQueue where BatchNum= " + job.getBatchNum() + "  and DocTypeID= " + job.getDocTypeID() + " and JobState='6' " ;
        String sql 
=   " update JobQueue set JobState= " + JobState.SAVE + "  where BatchNum= " + job.getBatchNum() + "  and DocTypeID= " + job.getDocTypeID() + "  and JobNum= " + job.getJobNum() + "" ;
        ArrayList array
= new  ArrayList();
        System.out.println(sql);
                
try
                
{
                    getConnection
= ConnectionLocator.getInstance().getConnection(strJNDI);
                    ResultSet rs
= null ;
                    
if (getConnection != null )
                    
{
                        PreparedStatement pstmt1
= getConnection.prepareStatement(sqlselect);
                        PreparedStatement pstmt
= getConnection.prepareStatement(sql);
                        
                        rs 
=  pstmt1.executeQuery();
                        pstmt.executeUpdate();
                        
while (rs.next())
                        
{
                            String fileName 
=  rs.getString( " FileName " );
                            FileNameVB filenameVB 
=   new
 FileNameVB();//将得到的“文件名“进行封装
                            filenameVB.setFileName(fileName);
                            array.add(filenameVB);
                        }

                        
try
                        
{
                            pstmt.close();
                        }

                        
catch (SQLException e)
                        
{ throw   new  CustomException(e.getMessage(), " exs " );}
                        
try
                        
{
                            getConnection.close();
                        }

                        
catch (SQLException e)
                        
{ throw   new  CustomException(e.getMessage(), " exs " );}
                    }

                }

                
catch (SQLException e)
                
{ throw   new  CustomException(e.getMessage(), " ex00050 " );}
                
return  array;
    }
读取arraylist里的值
Collection m  = inputFacade.setRollBack(job);
                    ArrayList array 
=
 (ArrayList)m;
                    
for(int i=0;i<array.size();i++
)
                    
{   
                        filenameVB 
= (FileNameVB)array.get(i);
posted on 2006-09-16 10:28 Crespo 阅读(1180) 评论(1)  编辑  收藏 所属分类: Java web

评论:
# re: java.util.ArrayList 2006-09-25 10:04 | sunyi
hahahah

u just do a such professional blog
can't understand
huhuhuhuhu


best wishes always
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: