arrarylist与list

1、什么是ArrayList
ArrayList是动态数组。(add()方法)

 

动态的增加和减少元素
实现了ICollection和IList接口
灵活的设置数组的大小。

 

 

2、如何使用ArrayList

ArrayList List = new ArrayList();
for( int i=0;i <10;i++ ) //给数组增加10个Int元素
List.Add(i);

 

3,几个方法

Add、AddRange、Remove、RemoveAt、RemoveRange、Insert、InsertRange
这几个方法比较类似
Add方法用于添加一个元素到当前列表的末尾
AddRange方法用于添加一批元素到当前列表的末尾
Remove方法用于删除一个元素,通过元素本身的引用来删除
RemoveAt方法用于删除一个元素,通过索引值来删除
RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除
Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动
InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动

 

 

4ArrayList与数组转换
1
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);

Int32[] values = (Int32[])List.ToArray(typeof(Int32));

2
ArrayList List = new ArrayList();
List.Add(1);
List.Add(2);
List.Add(3);

Int32[] values = new Int32[List.Count];
List.CopyTo(values);

 

List类型以及方法:

List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。

arrarylist与list_第1张图片


从表1可以看出,List接口提供的适合于自身的常用方法均与索引有关,这是因为List集合为列表类型,以线性方式存储对象,可以通过对象的索引操作对象。

 

List接口的常用实现类有ArrayListLinkedList,在使用List集合时,通常情况下声明为List类型,实例化时根据实际情况的需要,实例化为ArrayListLinkedList,例如:
List l = new ArrayList();// 利用ArrayList类实例化List集合
List l2 = new LinkedList();// 利用LinkedList类实例化List集合
1add(int index, Object obj)方法和set(int index, Object obj)方法的区别
在使用List集合时需要注意区分add(int index, Object obj)方法和set(int index, Object obj)方法,前者是向指定索引位置添加对象,而后者是修改指定索引位置的对象

   arrarylist与list_第2张图片

 

list指的是集合(或列表),<>是泛型,里面指定了这个集合中存放的是什么数据.

泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

 

 

目的:用sql=select * from ranking查询ranking表中所有的数据并存储在对象列表中。

 

代码使用:dao包下的rankDao.java

 

 

 

public List selectRank(){

StringBuffer strSql = new StringBuffer();

strSql.append("select * from ranking");

Connection connection = null;

// 命令对象

PreparedStatement preparedStatement = null;

// 结果集

ResultSet resultSet = null;

//List rkList=null;

List rkList = new ArrayList();//list是接口,需要实现,用new ArrayList()返回ArrayList对象。ArrayList实现了list接口。属于多态。

ranking rk=null;

try {

// 获取连接

connection = DBUtil.getConnection();

// 预编译sql语句

preparedStatement = connection.prepareStatement(strSql.toString());

resultSet = preparedStatement.executeQuery();

System.out.println(resultSet==null?"12312312":"4444444");

resultSet.next();

System.out.println(""+resultSet.getInt(3));

while(resultSet.next()){

rk=new ranking();

rk.setIntegral(resultSet.getInt("integral"));

rk.setRankingId(resultSet.getInt("rankingId"));

rk.setTime(resultSet.getDate("time"));

rk.setUserId(resultSet.getInt("userId"));

rkList.add(rk);

}

return rkList;

} catch (SQLException e) {

e.printStackTrace();

} finally {

// 释放资源

DBUtil.releaseDB(null, preparedStatement, connection);

}

return rkList;

}

 

 

 

 

主页面方法:

private static void gameRank(User us) {

// TODO Auto-generated method stub

System.out.println("--------------Rank榜单---------------");

List rkList=rd.selectRank();//接收daoselectRank()方法,

int i=0;

System.out.println("排名:姓名:分数:时间:");

for(ranking rk:rkList){

System.out.println((++i)+""+rk.getUserId()+""+rk.getIntegral()+""+rk.getTime());

}

}

 

 下图中,是Java中接口之间的继承关系

 arrarylist与list_第3张图片

 


你可能感兴趣的:(java)