集合框架
集合就相当数组
可以存放多个元素
根据下表取值
ArrayList其实就是一个数组
扩容的原理:新建一个更大的数组,把原来的数组剪切到里面
最大的区别:数组的大小是不可变的
:集合的大小1是可变的,动态扩容
Collection 集合的顶级接口是 List,Set的父类
list接口,必须指定一个类型
-ArrayList 基于数组的集合
-Vector 基于数组的集合,更安全
-LinkedList 基于链表的集合
创建集合
这里 List<E> E需要删除,里面必须指定一个类型,指定了该类型就只能使用该类型,把<E>删除不要,就可以放任意类型
List<String> as=new ArrayList<String>();
Vector<String> s=new Vector<String>();
在ArrayList集合里面增加(add)
as.add("九九");
as.add("八八");
也可以指定增加到那个位置
as.add(2,"哈哈");----指定增加到第2个位置上
在ArrayList集合里面删除 (remove)
as.remove(0);----删除位置第0个
as.remove("九九");----或者根据名字删除
查看ArrayList集合的长度(length,size)
System.out.println(as.size());
将两个ArrayList集合合并 (addAll)
List<String> bs =new ArrayList<String>();---创建集合增加
bs.add("东东");
bs.add("嘻嘻");
as.addAll(bs);---合并
System.out.println(as.size());---输出
输出结果
[八八, 东东, 嘻嘻]
可以用以下方法查看
//方法1
System.out.println(as);
//方法2
for (int i = 0; i < as.size(); i++) {
System.out.println(as.get(i));
}
//方法3
for (String s1 : as) {
System.out.println(s1);
}
-Vector集合使用方法和ArrayList一样
-LinkedList 基于链表的集合使用方法也一样
链表:一些不连续的空间,彼此有联系
链表和数组的区别:数组查询效率高,链表是扩容,删除效率高
LinkedList<String> ls=new LinkedList<String>();--创建链表集合
LinkedList是一个双向链表,所以它提供两个方法:
getFirst()拿到第一个节点
getLast()拿到最后一个节点