一大波Java来袭(五)——Java集合概述

把“Java集合”比作是容器,可以把多个对象(实际:是对象的引用),扔在容器中。

  1. JDK1.5之前,被丢进集合中的对象,会丢失起数据类型。默认为Object类型
  2. JDK1.5之后,不会丢失数据类型,因为引入了“泛型”(作为下文重点)

本文将结合数据结构,重点讲述Java的4种集合体系的功能和用法,并给出不同应用场景改如何选择?

一、同样是用于“存储数据”,既可以使用“数组”,有可以使用“集合”,有什么区别吗?

  1. 数组:

    1. 初始化时,决定了盛放数据的数量是固定的
    2. 无法保存,具有映射关系的数据
    3. 用于盛放:基本类型的值,或对象(对象的引用)
  2. 集合
    1. 恰好弥补数组的i、ii的不足
    2. 仅用于盛放:对象(对象的引用)

二、Java集合类主要由两个接口派生出:CollectionMap,两接口又包含了一些子接口和实现类(简化版)。

  1. Collection树

    1. Set无序,不可重复
    2. List有序,可重复
  2. Map树,关联数组

三、把Java的所有集合分为3类:

  1. Set,类似于一个罐子,对象随机添加到Set集合中,Set集合无法记住添加元素的顺序。所以Set中的元素是不可重复的(否则系统无法准确识别这个元素)
  2. List,类似于一个数组,可以记住元素添加的顺序,区别在于List长度是可变的
  3. Map,也类似于一个罐子,只是里面的每个数据项都是有两个值组成的

Map接口,字典/关联数组,键值对存放,keyvalue单向一对一

  1. Map图,拆分为

    1. key罐子(无序、不可重复,类似Set集合)和
    2. value罐子(可重复,可根据索引查找,类似List集合【区别:此处为key索引,而不是数字索引】)

四、如何访问元素?

  1. Set,根据元素本身
  2. List,根据元素的索引
  3. Map,根据key来访问对应的value

相关文章:

《一大波Java来袭(六)——Java集合之Collection和Iterator接口》

《一大波Java来袭(七)——Java集合之Set接口》

《一大波Java来袭(八)——Java集合之List接口》

    时间: 2024-10-25 15:54:19

    一大波Java来袭(五)——Java集合概述的相关文章

    java高级特性之集合概述

    java中的集合概述 map 接口 总结 java集合学习 1 java中存储数据的方式 1 数组 (基本数据类型+引用数据类型).2 集合(对象) 数组存储数据的缺点1:数组一旦创建,长度固定 2:数组不能直接确定有效元素的个数 java中的集合概述: java集合接口:Collection 接口 和Map 接口 (Collection接口 表示不按照添加顺序存放对象的集合,而且集合内的元素可以重复即 无序可重复 集合,它是List,Set,Queue..接口的父接口) Collection

    一大波资源来袭:工具,源码,职场攻略

    又要一年了,不要再做个傻傻的程序员,然后不停的问:为什么技术好.工作认真却还败给那些不如自己的人,觉得很是不公平, No No No,你还修炼的不够,不过听Dev的刘说移动应用开发者要涨工资啦,有木有很幸福的赶脚,还有人说由于科技人才短缺,美国放松了留美毕业生工作政策,但也有其它报道称美国技术类绿卡申请越来越难,奥巴马新宣布的移民新政也不利于留学生的发展,这到底是怎么回事呢?难道在美国的留学生会回来抢国内旭元的饭碗,还是去看看是不是真得吧. 对了,刚才说到修炼不够,我是来送福利的,给你的一大波资

    一大波字符来袭!

    节目预告: 字符的各种,操作,数据类型新讲 一预热: 重要的事情再重复: int(整数) bool(布尔判断) str(字符串) 新增 : list(列表) :大量的数据凑一块 ,","分隔 ,外套 "[ ] " tuple (元组) :   数据凑一块形成的整体,不能发生变化 , ","分隔 ,外套 "( ) " dict (字典) :  有序的数据凑一块 ,包括key(索引)和value(key对应的数据) , "

    一大波Java来袭(四)String类、StringBuilder类、StringBuffer类对比

    本文主要介绍String类.StringBuffer类.StringBuilder类的区别  : 一.概述 (一)String 字符串常量,但是它具有不可变性,就是一旦创建,对它进行的任何修改操作都会创建一个新的字符串对象. (二)StringBuffer 字符串可变量,是线程安全的,和StringBuilder类提供的方法完全相同. 区别在于StringBuffer每个方法中前面添加了"synchronized",保证其是线程安全的. (三)StringBuilder 字符串可变量,

    一大波Java来袭(二)异常处理

    概要解析: 本章的知识点可以记为:1图+5关键字+先逮小的.后逮大的  一.基础 (一)定义 1.异常 是指在程序运行的时候发生的一些异常事件.良好的程序设计应该在异常发生的时候提供处理异常的方法,使得程序不会因为异常的发生而中断.因此Java提供的用于处理程序中错误的一种机制. 2.抛出异常throw java程序的执行过程中如出现异常事件,可以生成一个异常类对象(封装了异常事件的信息),被提交给java运行时系统. 简单理解为:推卸责任.马路上遇到了交通事故,不需要自己处理,而是拨打110,

    一大波Java来袭(三)Java常用类

    本文简单介绍集中Java常用类 不同种类的工具用于处理不同的工作.比如:厨房中的工具用于烹饪:农场中的工具用于养殖--对于Java的学习中处理不同的工作也要采用不同的工具.如:处理数学函数问题用Math类.针对文件的操作采用File类--这也充分体现了Java面向对象的特点 一.字符串类(重点理解内存模型) (一)String Java.lang.String字符串常量,具有不可变性. (二)StringBuffer Java.lang.StringBuffer字符串可变量,是线程安全的. (三

    Java集合(一):Java集合概述

    注:本文基于JDK 1.7 1 概述 Java提供了一个丰富的集合框架,这个集合框架包含了许多接口.虚拟类和实现类.这些接口和类提供了丰富的功能,能够满足基本的聚合需求.下图就是这个框架的整体结构图: 可以看见,这个框架非常大,大到吃惊的地步.这个图的左面部分是接口,右面部分是类,中间的线代表了右面的类实现了左面的哪些接口.比如,AbstractList类实现了List接口,那么继承自AbstractList类的子类都实现了这个接口.还有,如果一个类实现了一个接口,那么这个类也实现了这个接口的所

    Java基础知识强化之集合框架笔记38:Set集合之Set集合概述和特点

    1. Set集合概述和特点 Collection            |--List                     有序(存储顺序和取出顺序一致),可重复            |--Set                     无序(存储顺序和取出顺序不一致),唯一  HashSet:它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变. 注意:虽然Set集合的元素无序,但是,作为集合来说,它肯定有它自己的存储顺序, 而你的顺序恰好和它的存储顺序一致,这代表不了有序,你可以

    复习java第五天(枚举、Annotation(注释) 概述)

    一.枚举 传统的方式: ?在某些情况下,一个类的对象是有限而且固定的.例如季节类,只能有 4 个对象 ?手动实现枚举类: -private 修饰构造器. -属性使用 private final 修饰. -把该类的所有实例都使用 public static final 来修饰. 练习代码: 1 public class Season { 2 3 //1.因为类的对象是固定的,所以类的属性是常量 4 public final String name; 5 public final String de