0%

集合

简介

大致分为四种

  1. Set :
    • 代表无需,不可重复的集合。
  2. List:
    • 代表有序,重复的集合
  3. Map:
    • 代表具有映射关系的集合
  4. Queue:
    • 代表队列集合实现

和数组的区别

  1. 数组长度必须得初始化长度,长度是要提前知道。容易固定无法动态改变。但是集合可以保存数量不确定的数据。同时还能保存映射关系数据(键值对 key-value)
  2. 数组的元素可以对象或者基本类型,而集合只能是对象(保存对象的引用而非本身)
  3. 集合有着封装,继承,多态的特性,通过方法和属性实现复杂操作。

    图例

    image
    MAP 类图例
    image
    Map由key和value两个值组成。里面的key是不可重复的,key用户标识集合里的每项数据。

    接口

    Collection 接口

    集合框架的根接口(Collection 继承了Iterable
    其中包含的增删改查等多个方法操作,其中还有 lterator 来遍历集合元素。

    lterator 迭代器

    主要用法是为了遍历集合,其中有两个主要方法

    1
    2
    boolean hasNext();//如果有元素可以迭代,则返回true
    next();//返回迭代的下一个元素

以下例子怎么迭代

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Demo {
public static void main(String[] args){
//创建集合,添加元素
Collection<String> temp = new ArrayList<String>();
for(int i =0;i<10;i++){

temp.add(String.valueof(i));
}
//获取days集合的迭代器
Iterator<String> iterator = temp.iterator();
while(iterator.hasNext()){//判断是否有下一个元素
String next = iterator.next();//取出该元素
//逐个遍历,取得元素后进行后续操作
.....
}
}

}

注意:
修改迭代变量的值是不会修改集合本身的元素。因为 lterator 并不是把集合元素传给迭代变量,只是传来值,如同参数传递。

set集合

Set 就是 Collection ,没有添加新的方法,只是 Set 不也许添加重复元素,不同的行为。

List 集合

元素有序,可重复的集合。集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素 。List集合默认按元素的添加顺序设置元素的索引,例如第一个添加的元素索引为0,第二个添加的元素索引为1……
List作为Collection接口的子接口,可以使用Collection接口里的全部方法。而且由于List是有序集合,因此List集合里增加了一些根据索引来操作集合元素的方法。

Map 集合

Map用户保存具有映射关系的数据,因此Map集合里保存着两组数,一组值用户保存Map里的key,另一组值用户保存Map里的value,key和value都可以是任何引用类型的数据。Map的key不允许重复,value可以重复。

Queue 集合

Queue用户模拟队列这种数据结构,队列通常是指“先进先出”(FIFO,first-in-first-out)的容器。队列的头部是在队列中存放时间最长的元素,队列的尾部是保存在队列中存放时间最短的元素。新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素。通常,队列不允许随机访问队列中的元素。

本文标题:集合

文章作者:志者

发布时间:2019年08月16日 - 15:46:00

最后更新:2019年08月28日 - 17:33:45

原始链接:http://witman1999.github.io/集合.html

许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------
copy