Java日常学习之集合

   日期:2020-10-08     浏览:98    评论:0    
核心提示:Java日常学习之集合以下是本篇文章正文内容,下面内容为自己日常学习总结,可能有些地方不太全面,望谅解集合一、集合及其应用环境二、集合和数组的对比三、集合架构和分类1.List2.Set3.Map四、补充一、集合及其应用环境Java集合类存放在java.util包中,是一个用来存放对象的容器。 注意:    ①集合只能存放对象,不能放基本的数据类型。Integer等即为对象    ②集合存放

Java日常学习之集合

以下是本篇文章正文内容,下面内容为自己日常学习总结,可能有些地方不太全面,望谅解

集合

  • 一、集合及其应用环境
  • 二、集合和数组的对比
  • 三、集合架构和分类
    • 1.List
    • 2.Set
    • 3.Map
  • 四、补充

一、集合及其应用环境

Java集合类存放在java.util包中,是一个用来存放对象的容器。

 注意:
    ①集合只能存放对象,不能放基本的数据类型。

Integer等即为对象

    ②集合存放的都是对象的引用,而非对象本身。
    ③集合可以存放不同类型,不限数量的数据类型。

适用环境:

 当我们需要将一些相同结构的个体整合在一起时,就可以考虑使用集合了。

二、集合和数组的对比

相似点:

  • 都可以存储多个对象,对外作为一个整体存在

数组的缺点:

  • 长度必须在初始化时指定,且固定不变
  • 数组采用连续存储空间,删除和添加效率低下
  • 数组无法直接保存映射关系
  • 数组缺乏封装,操作繁琐

三、集合架构和分类


  • Collect 接口存储对象的特征为不唯一,无序
  • List接口存储对象的特征为不唯一,有序(索引顺序)
  • Set接口存储对象的特征为唯一,无序
  • Map接口存储一组键值对,key 唯一 无序,value 不唯一 无序

以下将不再复述他们的特征

1.List

  • ArrayList

      特性:	
       	线性表中的顺序表
       	实现长度可变数组
      
      特征:
      	按索引遍历元素和随机访问速率快	添加和删除难	
    
  • LinkedList

      特性:	
       	线性双向链表
       	遍历和随机访问元素效率低
      
      特征:
      	添加和删除效率高		遍历和访问效率低
    


  • 常用指令

     获取元素				 get(位置)
     添加元素到指定位置		 add(位置,值)
     添加多个元素 			 addAll
     遍历输出		  		 toString
     修改指定位置值			 set(位置,值)
     删除 					 remove(位置)
    
  • 综述:

      ArrayList         随机访问多用
      LinkedList		添加和删除多,增加了对首尾的操作
    

2.Set

  • HashSet

      特性:	
       	采用Hashtable存储结构	
       	
      特征:
      	添加、查询和删除速度快
      	无序	
    

hash 基于计算,直接计算到地址
步骤:①计算哈希码 ②计算存储位置 ③存入指定位置

  • LinkedHashSet

      特性:	
       	采用哈希存储结构,同时使用链表维护次序
      
      特征:
      	有序
    
  • TreeSet

      特性:	
       	采用二叉树(红黑树)的存储结构
      
      特征:
      	有序 查询速度比List快(按内容查询)
      	查询速度没有HashSet快
    

按内容查询速度:线性表 > 树 > 哈希表

3.Map

  • HashMap

      特性:	
       	key   无序 唯一 (Set)	
       	Value 无序 不唯一 (Collection)
    
  • LinkedHashMap

      特性:	
      	底层结构是hash+链表
       	key 有序(添加顺序) 唯一 LinkedHashSet
       	value 无序 不唯一 Collection
    
  • TreeMap

      特性:	
       	底层结构是红黑树
       	key 有序(自然顺序) 唯一
       	value 无序 不唯一 Collection
    
  • 常用指令

     获取相应元素的值			 get("键值")
     添加元素到指定位置		 add(位置,值)
     键值					 keySet()
     清除					 clear()
    
  • Map遍历

Set<Map.Entry<String,String>> entrySet = map.entrySet();
Iterator<Map.Entry<String,String>> it = entrySet.iterator();
while (it.hasNext()){ 
            Entry<String,String> entry = it.next();
            System.out.print(entry.getKey());
        }

map中没有迭代器所以要进行遍历时,先得到所有的key-value组成的set,再进行遍历set

entrySet()返回映射所包含的映射关系的Set集合(一个关系就是键值对)

四、补充

泛型
   可以规定其所加类型
   例:ArrayList<Integer(或自定类型)> list = new ArrayList();
   改善集合的安全性和方便性,无需考虑添加元素是否一致,加入或取出无需强转

集合中的遍历
    for
    foreach
    Iterator(Map中不可用)


谢谢观看!

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服