您的位置:首页 > 编程语言 > Java开发

Java自学之路-Java基础教程-40:Java的列表接口List和列表类ArrayList

2018-03-19 16:55 766 查看
前面查询的数据库记录会有很多条,Java如何才能把很多条记录存起来使用呢?下面介绍一个接口列表类List,还有List的实现类ArrayList。
import java.util.ArrayList;
import java.util.List;List和ArrayList同属于java.util包中,List是一个interface,ArrayList则是implements这个interface。要使用这两个类,注意要使用import关键字引入。在Eclipse中,使用Ctrl+Shift+O组合键,可以直接自动引入相关的包。​
ArrayList personList = new ArrayList();这一行语句创建了一个ArrayList列表类对象personList,这个类的add()方法可以用来把另外的对象存进来。
ArrayList personList = new ArrayList();Person person1 = new Person();personList.add(person1);
Person person2 = new Person();personList.add(person2);这样,就把两个Person的实例存进了ArrayList中。其实ArrayList和数组很相似,从名字可以看出来Array即是数组的意思。
结合Java的多态性,ArrayList personList = new ArrayList();可以用List personList = new ArrayList();来代替。这是因为ArrayList本身就是List的实现,ArrayList的对象也是一个List。只是接口List是不能被实例化的,也就是要创建对象就必须使用List的实现类去创建。
List中存了许多记录,又如何将这些记录从List中取出来呢?这就可以用for或while这样的循环语句,对List中的记录进行循环遍历。List有一个.size()方法,可以知道里面共有多少条记录。还有一个get()方法,可以把对应序号的记录拿出来。可见,List存的数据是有序的,这和数组也很类似。for(int i=0;i<personlist.size();i++ {<="" p="">Person person = (Person) personList.get(i);System.out.println(person.getNation());}
List里面的数据按照一定顺序存储,顺序号就如同数组的差不多,称为下标。List的下标也是从0开始,而且可以随时存入数据,总容量也动态地变长。这样可以在不知道数据记录共有多少的情况下,比数组更灵活地存入数据。
从List中使用get()拿到第i个数据时,由于get()方法返回类型是Object类型,所以要赋给Person类的对象person,就要使用强转()。这个强转()只能由已知的类型转为这个类型,比如已知List中存的就是Person类的对象,所以可以把这个存在List里的Object转为(Person)。前面已经提到过,所有的类和接口都是Object类型的,可以说在Java中Object处于顶级。

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/newdb", "root", "root");

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from new_table");

List personList = new ArrayList();
while (rs.next()) {
Person person = new Person();
person.setId(rs.getInt(1));
person.setNation(rs.getString(2));

personList.add(person);

}

for (int i = 0; i < personList.size(); i++) { Person person = (Person) personList.get(i); System.out.println(person.getNation()); } }上面的语句就是从查询数据库,到把数据存入List,再从List中取出数据。这种用法很常见,在实际工程中会经常用到。
下一节,我们就强转类型这个概念进一步作解释,并引入泛型机制对强转类型加深理解。



具有OCR和ASR功能,可以识别图片和录音中文字,并有多国语言翻译功能,可以作为便签或笔记,类似微博的图文应用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐