Java基础第十一天--Collection集合

1.  Collection集合:
 

Java语言对事物的描述最终是通过对象体现的,如果我们想对多个对象进行操作(存储和遍历),我们可以考虑使用对象数组实现。

问题是:对象数组长度固定,而很多时候我们的数据可能是变化的,所以Java就提供一种新的容器--集合
 
数组和集合的区别?
数组: 长度固定;
   存储的元素类型要求一致;
   可以存储基本数据类型,也可以存储引用数据类型
集合: 长度可变;
   可以存储不同类型的元素,但是一般存储的还是同一种;
   只可以存储引用数据类型

 

我们有很多种容器,但是他们的数据结构不同,就会有不同种类的集合。
不管这些集合是什么样子的,至少它可以存储数据、取出数据...
所以,我们就可以对这些不同的集合进行向上抽取,最终就能够形成一个集合的继承体系结构
 
 Collection集合
     |--List
          |--ArrayList
          |--Vector
          |--LinkedList
     |--Set
          |--HashSet
          |--TreeSet

 

2. 接口Collection<E>

 1)添加功能
  boolean add(Object obj):往集合中添加一个元素
  boolean addAll(Collection c):往集合中添加一个集合的元素


 2)删除功能
  void clear():移除所有元素
  boolean remove(Object o):从集合中移除一个元素
  boolean removeAll(Collection c):从集合中移除一个集合的元素,只要有一个重复的,就可以删除


 3)获取功能
  Iterator iterator():迭代器--遍历功能


 4)判断功能
  boolean contains(Object o):判断某个元素在集合中是否存在
  boolean containsAll(Collection c):判断一个集合中的元素是否在集合中存在,必须全部包含才返回true
  boolean isEmpty():判断集合是否为空


 5)长度功能
  int size()
  面试题:数组是.length属性;字符串是str.length()方法;集合.size()方法


 6)交集功能
  boolean retainAll(collection c): A.retainAll(B)
  假设A集合对B集合做交集,结果保存在A集合中,对B没有影响
  如果A集合发生了改变,就返回true;如果A集合没有发生改变,就返回false


 7)转换功能
  Object[] toArray():把集合转换为数组
  
3. 集合操作四部曲:

 1)创建集合对象   Collection c = new ArrayList();
 2)创建元素对象   String s = "Hello";
 3)把元素添加到集合中 c.add(s);
 4)遍历集合--迭代器  
 
4. 接口 iterator 

 1)Object next():获取集合中的元素

 Iterator it = c.iterator(); //这里返回的是实现了该接口的子类对象
 Object obj = it.next();


 2)boolean hasNext(): 是否还有元素

 While(it.hasNext()){
  	String s = (String)it.next();
  	System.out.println(s);
 }


 为什么迭代器是个接口而不是具体的类?
 迭代器不可能单独存在,迭代器必须依赖集合存在,而多种集合的数据结构不同,存储方式不同,
 那么,获取的方式也肯定不同,所以无法是具体的类。
 集合类本身最清楚是需要怎么获取数据的,所以,迭代器的实现都是定义在集合内部,以内部类形式存储,对外提供了一个接口。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值