集合

来源:互联网 发布: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、集合的遍历之键找值?
原创粉丝点击