2021-04-29

JAVA的集合※

※List集合:

定义:可用于存储数量不等的对象,并且可以实现常用的数据结构,如:栈、队列等;JAVA集合还可用于保存具有映射关系的关联数组(Map);Java集合大致分为:※【List】、【Set】、【队列:Queue】和【Map】四种体系,【List】代表着有序重复的一个集合,【Set】代表着无序不重复的集合;而【Map】代表着是有映射关系的集合---》【键值对】。

 

  1. JAVA集合概述:保存是【数量不确定】的数据,以及保存有【映射关系的数据】---》(关联数组);主要提供的是数据的盛放,也称为容器类(数据的容器类),都位于【java.util】包下面。

 

  1. 集合和数组的不同,数组元素既可以是【基本类型的值】,也可以是【对象】(实际上保存的是对象的引用变量);而集合只能够保存【对象】(实际上保存的是对象的引用变量)。

 

  1. JAVA的集合主要是有两大结构(接口派生而出):【Collection】和【Map】是JAVA集合框架的【根接口】,这两个接口又包含了一些【子接口】或【实现类】。

JAVA集合视图:

 

  1. 【List】集合代表着【有序】、【可重复】的集合,集合中每个元素都有其对应的【顺序索引】,允许使用重复元素,可以通过【索引】来访问指定位置的【集合元素】;默然按元素的添加顺序来设置元素的索引。
  1. 【Vector】是线程安全的,【AarrList】是非线程安全的。
  2. ※常用【AarrList】非线程安全;※【HashMap】;
  3. 集合的声明:声明【List】的时候,一般用的是它的【向上转型】。

 

  1. 【List】如果要存放整型的数据类型请输入相对应的【包装类类型】。

 

 

 

 

 

※List的常用方法

  1. add()--->向尾部添加指定的元素  
  2. add()-->在列表中的指定位置插入指定的元素   
  3. addAll()-->把一个集合插入到另外的一个集合

 

※注意事项:指定的index不能大于List元素的个数

  1. clear()清空集合--》
  2. Contains()判断是否包含指定的元素,返回的是bool值

 

  1. ContianisAll() 是否包含一段集合,也就是大的集合里面是否包含有小的集合元素

 

  1. equals()判断指定的对象或者列表是否相等
  2. get(index) 获取指定位置的元素--》index<集合的大小

 

  1. indexOf()返回某一个元素的索引位置----》第一次出现的索引位置

 

  1. lastIndexOf()返回某一个元素的索引位置--->最后一次出现的索引位置

 

  1. isEmpty() 队列是否为null -》
  2. remove()移除列表中指定位置的元素

 

  1. removeAll()移除指定包含在列表中的元素

 

  1. retainAll()移除指定不包含在列表中的所有元素

 

  1. set()替换指定位置的元素相当于修改-->
  2. size()返回列表中元素的个数

 

  1. subList(fromIndex,toIndex)从哪到哪,左并右开区间---》[fromIndex,toIndex)

 

  1. toArray()集合转成数组--->

 

 

 

 

 

四:Comparable和Comparator

  1. Comparable:是排序接口,若一个类实现了Comparable接口,那也就意味着这个类支持排序;实现了Comparable接口的【类】/【对象】/【列表】/【数组】都可以通过【Collections.sort】/【Arrays.sort】进行自动排序。

此外,实现Comparable接口的对象可用作为有序映射中的【键】或有序集合中的【集合】,不需要指定的比较器。

Comparable只有一个方法【compara】,比较【Comparable对象】和【指定对象的顺序】,如果Comparable对象,小于/等于/大于指定对象,则分别返回负整数/零/正整数。

 

  1. Comparator是比较接口,它是不支持排序(没有实现Comparable接口),我们可以通过建立一个“Comparator的比较器”来进行排序,而且“Comparator的比较器”只需要实现Comparator接口就可以了,也就是说,我们可以通过实现【Comparator】来新建一个比较器,然后通过这个比较器(Comparator)对类进行排序。

 

注意:

若一个类要实现Comparator接口:它一定要实现compare(T o1,T o2)函数。

 

 

五:Map集合

定义:Map接口中【键】Key和【值】Value--映射,可以通过【键】来获取值。》【键值对】

  1. 定义一个键和一个值,该值存储在一个【Map】中之后,通过该键来访问对应的值。
  2. 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常。
  3. 当对象的类型和Map里面元素的类型不兼容的时候,就会抛出ClassCastException异常。
  4. 当不允许使用Null对象的Map中使用Null对象,就会抛出NullPointerException异常。
  5. 当尝试修改一个【只读Map时】--》final的问题,会抛出UnsupportedOperationException异常。

Map常用方法:

  1. put(K key,V value):取值,相当于List的add--》
  2. putAll(Map m):把一个映射关系添加到另外一个关系,相当于addAll。

 

  1. remove(Object key)根据key去移除一个东西--》
  2. get():根据key去获取value--->
  3. put(K key,V value):也有修改的作用---》

 

六:TreeMap类

定义:TreeMap中提供了根据key顺序访问key---value对的方法。

注意:TreeMap就是TreeSet的一个key。

七:JAVA集合工具类:Collections

定义:主要操控Set、List。

排序操作方法(sort):

  1. reversr(List list):进行反向排序--à
  2. shuffe(List list)对指定的数据进行一次随机的顺序置换->每次的顺序都不一样

 

  1. sort(List list)根据自然顺序进行一个升序的排序
  1. swap(List list,int I,int j)指定位置进行元素的交换

 

  1. rotate(List list,int distance)根据指定的距离来轮换表中的元素

 

八:JAVA集合的总结点

1、List、Set、Map是集合体系中最主要的三个接口;Listh和Set同属于Collections接口,Map是单独属于Map集合的一个接口。

  1. List是一个有序允许元素重复,并且允许元素为空;最常见的实现类:【ArrayList】。
  2. ArrayList适合查找,不适合指定位置的插入,删除操作。

 

    1. Set是一个无序的,不允许元素重复;HashSet和TreeSet是两个实现类

 

    1. Comparator和Comparable的区别
      1. Comparator定义在类的外部,此时我们的类的结构不需要有任何变化,从小到大:o1-o2  从大到小:o2-o1
      2. Comparable定义在类的内部,从小到大:this-o  从大到小:o-this

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值