4.9.2 ArrayList 列表

来源:互联网 发布:微信大屏幕霸屏源码 编辑:程序博客网 时间:2024/06/06 01:58
package oop;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class UseArrayList {public static void main(String[] args) {// 创建一个list列表,通过ArrayList初始化,该列表中存放Integer对象List<Integer> list = new ArrayList<Integer>();/*这句意思是:创建一个list,这个list是通过List接口创建的,但通过ArrayList进行实例化。这么写的好处在于,如果将来不希望用ArrayList而是用LinkedList来实例化list列表时,只需将这句话的ArrayList改为LinkList即可。因为这些类都是实现List接口的,相应的方法也都来源于List接口。<Integer>表示泛型,也就是指定list列表中的元素都为Integer类型。虽然集合类支持存储不同数据类型的数据,但还是建议用相同数据类型;因为,其实集合类在存储不同数据类型的数据时,是将其统一转换为Object类型存储的,从根本上说,还是同一种类型。 *///通过add方法向List类型的列表(list)里添加数据list.add(1);//**list.add(2);list.add(2);list.add(2);list.add(3);//**list.add(4);//**list.add(2);list.add(2);list.add(2);list.add(6);//**list.add(2);//创建list的Iterator迭代器itIterator<Integer> it = list.iterator();//这里也使用了泛型,表明迭代器所指向的数据也是Integer的对象//遍历list,并将其中内容为2的元素删除while (it.hasNext()) {if (it.next().equals(2)) {it.remove();}}/*通过迭代器删除list中的数据—— 迭代器通过hasNext方法判断是否还有下一条记录,通过next方法移动到下一条记录。可以这样理解,迭代器初始时是指向list列表第一条记录的前一个位置的,而不是直接指向列表的第一条记录。 *///遍历并输出list列表it = list.iterator();System.out.println("通过迭代器输出list列表");while (it.hasNext()) {System.out.println(it.next() + " ");}//通过for循环遍历并输出list列表System.out.println("\n通过for循环遍历并输出list列表");for (Integer i : list) {System.out.print(i + " ");}//清空list列表list.removeAll(list);System.out.println("\n\n清空list列表");System.out.println("now the list size = " + list.size());//重新向list列表添加元素list.add(6);list.add(9);list.add(6);list.add(6);//从list中删除内容为2的元素for (int i = 0; i < list.size(); i++){if ((int) list.get(i) == 9) {list.remove(i);i = i -1;}}/*通过列表list本身删除list中的数据—— 1.列表list通过get方法获得指定下标处的元素。2.i=i-1;这句必须要有,当删除第i条记录时,列表长度会减1,第i+1条记录会变成第i条记录,第i+2条记录会变成第i+1条记录,以此类推。否则会出现一种bad case,连续两条可以删除的记录,删除了第一条后,后一条会由于取代了第一条的位置&&同时程序中对位置有++操作(for循环体中的i++)——>会由此导致后一条不会被删除的情况。 *///遍历并输出list列表it = list.iterator();System.out.println("\n通过迭代器输出list列表");while (it.hasNext()) {System.out.print(it.next() + " ");}/*tips:创建ArrayList时,如果不指定容量,则默认容量为10,也可在ArrayList的构造方法中指明初始容量。当ArrayList中的元素超过初始容量时,会自动扩容。 */}}

0 0
原创粉丝点击