集合框架的简单体系如下:
1.Set 没有顺序,不可重复 2.List 有顺序,可以重复
我们来具体尝试下collection中的一些常用方法
首先我们新建类在main的主方法中new一个collection对象
Collection col=new ArrayList(); //以此对象使用其中的方法 复制代码
col.add(123); col.add("哈哈"); col.add(false); col.add('c'); 复制代码
容器可以存储多个数据类型,不同于数组
System.out.println(col.size()); 复制代码
即返回容器里存储的数据数量
col.remove(123); System.out.println(col); 复制代码
会移除容器中的数据(123)
Iterator it=col.iterator(); //2.判断是否存在下一个元素 while(it.hasNext()){ //3.获取元素 System.out.println(it.next()); //获取下一个元素 } 复制代码
遍历输出容器里全部数据
list作为子接口,有序(索引)可重复,新增了一些根据索引操作的方法
public class ListDemo01 { public static void main(String[] args) { //添加泛型 增可读性 List<Integer> ls=new ArrayList(); //存储班级学生分数 ls.add(2); ls.add(0); ls.add(1); ls.add(4); ls.add(3); System.out.println(ls); //add(index, element) 添加 ls.add(3, 3); System.out.println(ls); //E set(int index, E element) 修改 ls.set(5, 5); System.out.println(ls); // E get(int index) 获取 System.out.println(ls.get(2)); // E remove(int index) //当容器中的数据也是整数时候,以索引为主 //下课测试,如果出现多个相同的值,移出时候删除多个,还是第一个 System.out.println(ls.remove(2)); System.out.println(ls); //List<E> subList(int fromIndex, int toIndex) 不包含结束索引 System.out.println(ls.subList(1, 4)); System.out.println(Arrays.toString(ls.toArray())); System.out.println(ls.toArray()[1]); //普通for for(int i=0;i<=ls.size()-1;i++){ System.out.println(ls.get(i)); } } } 复制代码
ArrayList的底层实现是由可变数组(通过一些方法)实现的,通过数组拷贝实现容器可以根据内容进行动态扩容;
在JDK1.4之前类型不明确:
装入集合的类型都被当做Object对待,从而失去自己的实际类型.从集合中取出时往往需要转型,效率低,容易产生错误.