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用于从指定位置开始添加一批元素,列表后面的元素依次往后移动
4、ArrayList与数组转换
例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所示。
从表1可以看出,List接口提供的适合于自身的常用方法均与索引有关,这是因为List集合为列表类型,以线性方式存储对象,可以通过对象的索引操作对象。
List接口的常用实现类有ArrayList和LinkedList,在使用List集合时,通常情况下声明为List类型,实例化时根据实际情况的需要,实例化为ArrayList或LinkedList,例如:
List
List
1.add(int index, Object obj)方法和set(int index, Object obj)方法的区别
在使用List集合时需要注意区分add(int index, Object obj)方法和set(int index, Object obj)方法,前者是向指定索引位置添加对象,而后者是修改指定索引位置的对象。
list指的是集合(或列表),<>是泛型,里面指定了这个集合中存放的是什么数据.
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
目的:用sql=select * from ranking查询ranking表中所有的数据并存储在对象列表中。
代码使用:dao包下的rankDao.java
public List
StringBuffer strSql = new StringBuffer();
strSql.append("select * from ranking");
Connection connection = null;
// 命令对象
PreparedStatement preparedStatement = null;
// 结果集
ResultSet resultSet = null;
//List
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
int i=0;
System.out.println("排名:姓名:分数:时间:");
for(ranking rk:rkList){
System.out.println((++i)+""+rk.getUserId()+""+rk.getIntegral()+""+rk.getTime());
}
}
下图中,是Java中接口之间的继承关系