Collection——集合

一、概念:
  集合是存储对象数据的集合容器。

 /*面试题:
 *  数组和集合的区别?
 *  1)长度区别:
 *   数组长度固定
 *   集合长度可变
 *  2)内容的区别
 *   数组可以存储同一种类型的元素
 *   集合可以存储多种类型的元素
 *  3)存储类型的区别
 *   数组:可以存储基本类型,也可以存储引用类型  String[] str = {"hello","world","java",100} ; 错误的
 *   集合:只能存储引用类型
 */
二、 基本功能:

1)添加功能:

   boolean add(Object e);
2)删除功能:
3)   void clear() :删除集合中所有元素(暴力删除);
   boolean remove(Object o):删除集合中的指定元素;
4)判断功能:
   boolean contains(Object o):集合中是否包含指定的元素;
5) 获取功能:
     int size() :获取集合中的元素数。

 三、高级功能:

   1)boolean addAll(Collection c)  :添加一个集合中的所有元素;
 
 2) boolean removeAll(Collection c)::删除一个算是删除...

 3) boolean containsAll(Collection c)::包含所有算是包含;

 4) boolean retainAll(Collection c):A集合对B集合取交集,交集的元素要去A集合中,boolean返回值表达的A集合的元素是否发生变化,如果发生变化,则返回true,否则,返回false。

5)转换功能:Object[] toArray() :将集合转换成数组;
 


四、迭代器:
  1. Iterator iterator() :集合的迭代器方法(获取集合的迭代器).

     集合的专有遍历方式:迭代器遍历。
    
  2.
    Iterator :接口中有以下的方法:
       boolean hasNext() :如果有元素可以迭代,那么返回true,否则返回false.
    Object next()返回迭代的下一个元素。
      存储String类型的元素。

  it.next(),只使用一次即可,使用多次,会出现问题(it.next(),每次使用的时候都是返回一个对象).
五、list:

/*Collection有两个子接口:List  Set。
   迭代器:Iterator iterator() ;*/
 1.
List集合的特点:
  有序的 (存储和取出一致),可以允许重复元素.
 
 Set集合的特点:
  无序性(不能保证迭代的顺序,基于hashMap),并且元素不能重复.
2.特有功能:
   1)添加功能
   void add(int index,Object element):在指定位置处添加指定元素。

   2) 获取功能
   Object get(int index)返回列表中指定位置的元素。

  3) 删除功能:
  Object remove(int index):删除指定位置处的元素。

  4) 修改功能
  Object set(int index, Object element):用指定element元素替换掉指定位置处的元素。

 
 
3.

1) ListIterator listIterator():列表迭代器 (List集合的专有迭代遍历:列表迭代器)

2) ListIterator接口中:
     boolean hasNext()  :判断是否有下一个可以迭代的元素(正向遍历)

     Object next():获取下一个元素
    boolean hasPrevious():判断是否有上一个可以迭代 元素(逆向遍历)

    Object previous():返回上一个元素
 
// 逆向迭代(遍历),单独使用没意义,前提,要先正向遍历

4.

 //存储自定义对象并遍历
   size()和get(int index):相结合, 普通for循环的方式。

5.注意事项:
使用迭代器遍历元素,不能使用集合添加元素!

/*
List集合有三个子实现类:
  
   ArrayList:
     底层数据结构式数组结构,查询块,增删慢
     从内存角度考虑:线程不安全的,不同步的,执行效率高
     
     多线程:synchronized :同步的意思  解决线程安全问题
       sychronized(锁对象){ 同步代码
         共享数据; 
       }
       
     解决线程安全问题,通过同步可以解决,但是效率低了...
   
   LinkedList:
     :底层数据结构式链表结构,查询慢,增删块
     从内存角度考虑:线程不安全,不同步,执行效率高
   
   Vector:
     这是一个线程安全的类,
     底层数据结构是数组:查询快,增删慢
     线程安全的,同步,执行效率低!
     */
     
     
     

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值