话不多说,直接上图

1.Collection集合小结

注意:

凡是使用哈希表保存对象的容器,保存的对象在容器中都是唯一的,唯一性是通过被保存对象的hashCode和equals方法共同确定;

凡是使用二叉树保存对象的容器,保存的对象在容器中都是唯一的,而且保存时就是有序的,有序性和唯一性依赖被保存对象实现Comparable接口,或传递给容器的比较器对象(实现了Comparator接口的对象);

ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦
LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查找非常麻烦 要从第一个索引开始
arraylist类似于数组形式,数据只要给定索引就可以直接得到数字,arraylist也一样,但是如果要增删,就要移动后面的所有元素,这样就慢了;
LinkedList是使用类似于链表来存储的,与arraylist相反,增删只要添加一个连接就可以了,不要移动后面的所有元素

2. Map集合总结

Map集合的特点:

1, Map集合中存储的是key-value的映射关系;

2, Map集合中的每个映射包含键和值两个对象,同时映射本身也是一个对象,使用Map.Entry类描述;

3, Map集合中的key必须保证唯一,不能重复,但值可以重复;

4, Map集合中key和value都可以是null元素,但是key只能有一个null;(HashTable中不能使用null做键和值)

5, Map集合不能直接遍历,只能通过键集、值集或键值对集遍历;

Map集合的继承体系:

开发中使用最多的三个集合:ArrayList;HashSet;HashMap

如果保存的数据有映射关系,就应该使用Map集合,否则就是用Collection集合;

如果要保存的数据可以是重复的,就应该使用List集合;否则就要使用Set集合;

3,泛型

1、泛型是一种在编译期就可以进行数据类型的检查的技术,只能检查引用类型的数据类型;

2、泛型使用一对尖括号表示:<标识符>;尖括号中的标识符,表示一个引用数据类型;

3、泛型可以定义在类、方法和接口上;

a) 定义在类上:书写在类名后面,在创建类的实例对象时确定泛型的具体类型;在类中的非静态函数中可以使用;

b) 定义在方法上:书写在方法的返回值类型前面,在方法调用时确定泛型的具体类型,静态和非静态函数都能定义;只能在当前定义的这个方法里使用;

c) 定义在接口上:书写在接口名后面,实现接口时可以明确泛型的具体类型,或者通过泛型类,在创建类的对象时才明确具体类型;

4、泛型的通配符:当需要使用的泛型的数据类型是不确定的时候,就需要使用泛型的通配符;

通配符的写法:<?>

5、泛型的通配符的上限和下限:

a) 在定义泛型的通配符的时候,如果只能匹配某个类和这个类的子类,就需要使用通配符的上限,写法是:<? extends 上限的类型>

在使用通配符的上限时,只能从容器中取出数据,不能向容器中存放数据;

b) 在定义泛型的通配符的时候,如果只能匹配某个类和这个类的父类,就需要使用通配符的下限,写法是:<? super 下限的类型>

在使用通配符的下限的时候,直接向容器中保存对象,对象的类型只能是下限的类型;

要从容器中取出对象,不能直接使用下限类型的变量接受,需要强制向下转型,或使用Object类型的变量接受;

Java基础之集合与泛型的更多相关文章

  1. java基础-Map集合

    java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...

  2. Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)

    Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...

  3. Java基础之多态和泛型浅析

    Java基础之多态和泛型浅析 一.前言: 楼主看了许多资料后,算是对多态和泛型有了一些浅显的理解,这里做一简单总结 二.什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面 ...

  4. 第6节:Java基础 - 三大集合(上)

    第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...

  5. 备战金三银四!一线互联网公司java岗面试题整理:Java基础+多线程+集合+JVM合集!

    前言 回首来看2020年,真的是印象中过的最快的一年了,真的是时间过的飞快,还没反应过来年就夸完了,相信大家也已经开始上班了!俗话说新年新气象,马上就要到了一年之中最重要的金三银四,之前一直有粉丝要求 ...

  6. java基础技术集合面试【笔记】

    java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...

  7. java基础(18):集合、Iterator迭代器、增强for循环、泛型

    1. 集合 1.1 集合介绍 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数 ...

  8. Java基础--说集合框架

    版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...

  9. JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397  文章- 0  评论- 78  JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...

随机推荐

  1. Ubuntu使用MyEclipse闪退的解决办法

    修改myeclipse.ini文件, -Xmx512m-XX:MaxPermSize=512m-XX:ReservedCodeCacheSize=256m-Dosgi.nls.warnings=ign ...

  2. GitHub新手快速入门日常操作流程

    GitHub新手快速入门日常操作流程 1. 注册帐号 打开https://github.com/,填写注册信息并提交. 2. 登录帐号 打开https://github.com/login,输入注册的 ...

  3. c# 备份数据库恢复数据库

    /// <summary> /// 对数据库的备份和恢复操作,Sql语句实现 /// </summary> /// <param name="cmdText&q ...

  4. 【bzoj1085】 SCOI2005—骑士精神

    http://www.lydsy.com/JudgeOnline/problem.php?id=1085 (题目链接) 题意 给出一个初始局面,问能否在15步内走到最终局面,并输出最少步数. Solu ...

  5. mysql 函数 GROUP_CONCAT 单元格中最长字符串和excel导出问题

    GROUP_CONCAT 使用方式GROUP_CONCAT ([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) SELECT ...

  6. 如丝般顺滑地从Windows迁移SQLServer数据库到Linux

    老鸟看过菜鸟的上一篇<MSSQL On Linux备份与还原>文章后,很满意,但是还是忍不住发问:"这篇文章讲的是MSSQL在Linux系统上的备份与还原,如果我之前是Windo ...

  7. 你所不了解的float(滥用float的怪异现象)

    float设计初衷就是为了实现文字环绕效果 原本页面流布局显示如上图所示,运用了float属性后就显示为如下图所示,这就是浮动的设计初衷 float的一些特性:包裹性.破坏性. 包裹的特性其实主要有三 ...

  8. Spring JdbcTemplate 方法详解

    JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修 ...

  9. JAVA教师:给JAVA初学者的忠告

    我带过不少JAVA,C++班的课,来学习的同学很多都是初学者,一部分是急着找工作的,一部分是很感兴趣的.他们都想在短短一两个星期内掌握Java,这是不切实际的.而且这样做很容易让自己心浮气燥,难以静下 ...

  10. 工作中的一些JS--为网页动态添加元素,类似于邮箱添加联系人的功能

    项目中要解决一个为下拉框动态添加选项的问题,之前从网上搜到结果,写个JS函数 //先新建元素,并添加属性 var option = document.createElement("optio ...