集合特点:元素类型可以不同、集合长度可变、空间不固定。
java中对一些数据结构和算法进行了封装即集合。集合也是一种对象,用于存储、检索、操作和传输的对象。
JCF(java Collection Framework)集合框架
集合和数组的区别:
①数组创建后,长度不可改变,集合长度会随着元素增加,自动变长。
②数组的元素只能存放单一数据类型,集合中的元素可以存放不同类型。
③集合中只能存放对象的引用。而数组中,可以存放基本类型,也可以存放引用类型数据。
④集合的算法比数组更加丰富。
集合的API结构:
Collection是List和Set的父类接口,另外还有一个Map接口。
List:线性,元素可以重复。
Set:元素不可以重复。
Map:键值对。一个元素可以存放两个对象,其中键值对不可以重复。
遍历集合的方式:for循环方式、迭代器方式、for each方式(常用)
标准的javaBean的规范:
①必须提供公有的无参构造方法。
②私有属性,通过get/set方法,对属性进行访问和修改。
③需要实现序列化接口。
求长度:
数组:length属性
字符串:length()方法
集合:size()方法
List集合有三个常用的实现类:
①ArrayList:底层部分使用数组实现。遍历速度快,中间插入删除元素速度慢,线程不安全。
②Vextor:底层部分同样使用数组实现。线程安全的类。
③LinkedList:采用双向链表实现。元素的空间不连续,每个元素除了存放数据以外,还要存放上一个和下一个元素的地址,遍历速度慢,中间插入删除元素速度快。
HashMap和HashTable的区别和联系:
①HashMap和HashTable都是Map接口的实现类,一个元素可以放两个对象。
②HashMap允许存放空键和空值,而HashTable不允许存放空键和空值。
③HashMap线程不安全,而HashTable线程安全。