List-java.awt是个接口,必须指定一个泛型
-ArrayList 基于数组的集合
-Vector 基于数组的集合,更安全
-LinkedList 基于链表的集合
Set 接口:去重且无下标
HashSet
HashTable 更安全
TreeSet 排序功能的set 集合相当于数组
可以存放多个元素
根据下标取值
最大的区别:
数组的大小是不可变的
集合的大小是可变的,动态扩容
//一个放名字的集合 List数组的空间必须是连续的as = new ArrayList (); ArrayList bs = new ArrayList (); //(get)(索引)返回指定索引的对象 System.out.println(as.get(0)); //添加(add) bs.add("bb"); //批量添加addAll()是表示将指定集合中的数据追加到原集合后面 as.addAll(bs); //查看长度(length,size)size()返回集合的长度 System.out.println(as.size()); //contains()是否包含该元素equals比较 System.out.println(as.contains("bb")); //clear()清除集合中的元素 as.clear("bb"); //remove(index)移除指定索引的对象 as.remove("bb");
随机查找:根据下标取值
ArrayList 其实就是一个数组
扩容的原理:新建一个更大的数组,把原来的数组的内容复制过去
ArrayList
fs.add("a");
fs.add("a");
fs.add("a"); 链表和数组的区别:
数组查询效率高
链表是扩容,删除效率高 链表:一些不连续的空间,彼此有联系
LinkedList
a.get(2);
a.getFirst();查看第一个
a.getLast;查看最后一个 Set集合:去重复
Set
List



