集合
来源:互联网 发布:linux ed2k wget 编辑:程序博客网 时间:2024/06/03 22:43
Collection是接口
List,Set是它的子接口
ArrayList, LinkedList,Vector 是List的实现类
HashSet,TreeSet是Set的实现类
Map是接口
TreeMap,HashMap是它的实现类
1、为什么出现集合类?
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,java就提供了集合类。
1、集合?
Collection:List和Set
List包含:ArrayList,LinkedList,Vactor
Set包含:HashSet,TreeSet
2、数组和集合的区别?
长度区别:数组长度固定,集合长度可变
内容区别:数组存储同一类型元素,集合存储不同类型元素
元素数据类型区别:数组可以存储基本数据类型或者引用类型,集合只能存储引用类型
3、Collection的方法?
a):添加功能
add(Object obj):添加一个元素,返回值是类型。
//boolean addAll(Collection c):添加一个集合的元素
b)、删除功能
void clear():移除此 collection 中的所有元素
remove(Object o):移除一个元素,返回一个布尔类型的值
removeAll(Collection c):移除此 collection 中那些也包含在指定 collection 中的所有元素,返回布尔
c)、判断功能
contains(Object o):判断集合中是否包含指定的元素,返回布尔
containsAll(Collection c):判断集合中是否包含指定的集合元素(是一个还是所有),返回布尔
isEmpty():判断集合是否为空,返回布尔
d)、长度功能
size():元素的个数,返回int类型
面试题:数组有没有length()方法呢?字符串有没有length()方法呢?集合有没有length()方法呢?没有
e)、交集功能(这个是什么东西啊)
boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回的boolean又是什么意思?
移除此 collection 中未包含在指定 collection 中的所有元素。
f)、把集合转换为数组
Object[] toArray()返回包含此 collection 中所有元素的数组。
g)、获取功能
Iterator<E> iterator()(重点)
3、集合的遍历?
a)、把集合转为数组,实现遍历
b)、迭代器,集合的专用遍历方式
4、List接口?
List是Collection的子接口,List是有序 可重复
5、List的子类特点?
ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
到底使用谁呢?看需求?
分析:
要安全吗?
要:Vector(即使要,也不使用这个,后面再说)
不要:ArrayList或者LinkedList
查询多;ArrayList
增删多:LinkedList
什么都不知道,就用ArrayList。
6、栈和队列?
栈:先进后出 队列:先进先出
7、Vector的特有功能?
1:添加功能
public void addElement(Object obj)将指定的组件添加到此向量的末尾,将其大小增加 1。
2:获取功能
public Object elementAt(int index)返回指定索引处的组件。
8、LinkedList特有的功能?
A:添加功能
public void addFirst(Object e) 将指定元素插入此列表的开头。
public void addLast(Object e) 将指定元素添加到此列表的结尾。
B:获取功能
public Object getFirst() 返回此列表的第一个元素。
public Obejct getLast() 返回此列表的最后一个元素。
C:删除功能
public Object removeFirst() 移除并返回此列表的第一个元素。
public Object removeLast() 移除并返回此列表的最后一个元素。
9、ArrayList去除集合中字符串的重复值(字符串的内容相同) 。
boolean contains(Object o) ,如果此列表中包含指定的元素,则返回 true
10、List泛型?
11、泛型类?泛型方法?泛型接口?
12、set集合?
list集合特点:有序,可重复
set集合特点:无序,唯一
注意:虽然Set集合的元素无序,但是,作为集合来说,它肯定有它自己的存储顺序,而你的顺序恰好和它的存储顺序一 致,这代表不了有序,你可以多存储一些数据,就能看到效果。
13、TreeSet?
TreeSet:能够对元素进行某种规则进行排序(比如数字从小到大排序啦)
14、Map集合?
Map<k,v>
k:此映射所维护的键的类型 (键)
v:映射值的类型 (值)
15、Map集合的特点?
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
16、Collection集合与Map集合的区别?
Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的。可以把这个理解为:夫妻对
Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的。可以把这个理解为:光棍(11.11)
17、注意?
Map集合的数据结构值针对键有效,跟值无关
Collection集合的数据结构是针对元素有效
18、Map集合的功能?
1:添加功能
V put(K key,V value):添加元素。
如果键是第一次存储,就直接存储元素,返回null
2:删除功能
void clear():移除所有的键值对元素
V remove(Object key):根据键删除键值对元素,并把值返回
如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
3:判断功能
boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
4:获取功能
V get(Object key):根据键获取值
Set<K> keySet():获取集合中所有键的集合
Collection<V> values():获取集合中所有值的集合
boolean isEmpty():判断集合是否为空
18、集合的遍历之键找值?
List,Set是它的子接口
ArrayList, LinkedList,Vector 是List的实现类
HashSet,TreeSet是Set的实现类
Map是接口
TreeMap,HashMap是它的实现类
1、为什么出现集合类?
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,java就提供了集合类。
1、集合?
Collection:List和Set
List包含:ArrayList,LinkedList,Vactor
Set包含:HashSet,TreeSet
2、数组和集合的区别?
长度区别:数组长度固定,集合长度可变
内容区别:数组存储同一类型元素,集合存储不同类型元素
元素数据类型区别:数组可以存储基本数据类型或者引用类型,集合只能存储引用类型
3、Collection的方法?
a):添加功能
add(Object obj):添加一个元素,返回值是类型。
//boolean addAll(Collection c):添加一个集合的元素
b)、删除功能
void clear():移除此 collection 中的所有元素
remove(Object o):移除一个元素,返回一个布尔类型的值
removeAll(Collection c):移除此 collection 中那些也包含在指定 collection 中的所有元素,返回布尔
c)、判断功能
contains(Object o):判断集合中是否包含指定的元素,返回布尔
containsAll(Collection c):判断集合中是否包含指定的集合元素(是一个还是所有),返回布尔
isEmpty():判断集合是否为空,返回布尔
d)、长度功能
size():元素的个数,返回int类型
面试题:数组有没有length()方法呢?字符串有没有length()方法呢?集合有没有length()方法呢?没有
e)、交集功能(这个是什么东西啊)
boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回的boolean又是什么意思?
移除此 collection 中未包含在指定 collection 中的所有元素。
f)、把集合转换为数组
Object[] toArray()返回包含此 collection 中所有元素的数组。
g)、获取功能
Iterator<E> iterator()(重点)
3、集合的遍历?
a)、把集合转为数组,实现遍历
b)、迭代器,集合的专用遍历方式
4、List接口?
List是Collection的子接口,List是有序 可重复
5、List的子类特点?
ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
到底使用谁呢?看需求?
分析:
要安全吗?
要:Vector(即使要,也不使用这个,后面再说)
不要:ArrayList或者LinkedList
查询多;ArrayList
增删多:LinkedList
什么都不知道,就用ArrayList。
6、栈和队列?
栈:先进后出 队列:先进先出
7、Vector的特有功能?
1:添加功能
public void addElement(Object obj)将指定的组件添加到此向量的末尾,将其大小增加 1。
2:获取功能
public Object elementAt(int index)返回指定索引处的组件。
8、LinkedList特有的功能?
A:添加功能
public void addFirst(Object e) 将指定元素插入此列表的开头。
public void addLast(Object e) 将指定元素添加到此列表的结尾。
B:获取功能
public Object getFirst() 返回此列表的第一个元素。
public Obejct getLast() 返回此列表的最后一个元素。
C:删除功能
public Object removeFirst() 移除并返回此列表的第一个元素。
public Object removeLast() 移除并返回此列表的最后一个元素。
9、ArrayList去除集合中字符串的重复值(字符串的内容相同) 。
boolean contains(Object o) ,如果此列表中包含指定的元素,则返回 true
10、List泛型?
11、泛型类?泛型方法?泛型接口?
12、set集合?
list集合特点:有序,可重复
set集合特点:无序,唯一
注意:虽然Set集合的元素无序,但是,作为集合来说,它肯定有它自己的存储顺序,而你的顺序恰好和它的存储顺序一 致,这代表不了有序,你可以多存储一些数据,就能看到效果。
13、TreeSet?
TreeSet:能够对元素进行某种规则进行排序(比如数字从小到大排序啦)
14、Map集合?
Map<k,v>
k:此映射所维护的键的类型 (键)
v:映射值的类型 (值)
15、Map集合的特点?
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
16、Collection集合与Map集合的区别?
Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的。可以把这个理解为:夫妻对
Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的。可以把这个理解为:光棍(11.11)
17、注意?
Map集合的数据结构值针对键有效,跟值无关
Collection集合的数据结构是针对元素有效
18、Map集合的功能?
1:添加功能
V put(K key,V value):添加元素。
如果键是第一次存储,就直接存储元素,返回null
2:删除功能
void clear():移除所有的键值对元素
V remove(Object key):根据键删除键值对元素,并把值返回
如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
3:判断功能
boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
4:获取功能
V get(Object key):根据键获取值
Set<K> keySet():获取集合中所有键的集合
Collection<V> values():获取集合中所有值的集合
boolean isEmpty():判断集合是否为空
18、集合的遍历之键找值?