跟王老师学集合(一)为什么要使用集合和Java集合概述

为什么要使用集合和Java集合概述

主讲人:王少华  QQ群号:483773664

学习目标

1 理解为什么使用集合

2 掌握Java集合框架

一、使用数组缺陷:

在电子宠物系统中,如果想存储多个宠物信息,可以使用数组来实现。例如,可以定义一个长度50的Dog类型的数组,存储多个Dog对象的信息。但是采用数组存在以下一些明显的缺陷:

  • 数组长度固定不变,不能很好适应元素数量动态变化的情况。若要存储大于50个狗狗的信息,则数组长度不足;若只存储20个狗狗的信息,则造成内存空间浪费
  • 可通过数组名.length获取数组长度,却无法直接获取数组中真实存储的狗狗个数。
  • 数组采用在内在中分配连续空间的存储方式,根据下标可以快速获取对应的狗狗的信息。但根据狗狗的信息查找时效率低下,需要多次比较。

一一比较

二分法查找

二、数组不能完成的需求

在存储狗狗信息时,希望分别存储狗狗的呢称与狗狗的信息,两者存在一一对应的关系。如下图所示

数组肯定完成不了这种需求

三、Java集合概述

(一)什么是Java集合

  • 为了保存数量不确定的数据,以及保存具有映射关系的数据,Java提供集合类。
  • 集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类
  • 所有集合类都位于java.util包下

(二)Java集合框架

  • Java的集合类主要由两个接口派生而出:Collection和Map.
  • Collection接口、子接口及其实现类的继承树

Set和List接口是Collection接口派生的两个子接口,它们分别代表了无序集合和有序集合;

Queue是Java提供的队列的实现。

  • Map体系的继承树

Map保存的每项数据都是key-value对,也就是由key和value两个值组成。

Map里的key是不可重复的,key用于标识集合的每项数据,如果需要查阅Map中数据时,总是根据Map的key来获取

比如要保存一个人的信息(包括身份证号码和姓名)

(三)总结

Java集合可以分为三大类

Set:类似一个大罐子,元素的特点:无序、不可重复。最常用的实现类:HashSet

List:像一个数组,只是List的长度可变,元素特点:有序、可重复。最常用的实现类ArrayList

Map:像一个罐子,元素特点:有两个值组成。最常用的实现类:HashMap

来自为知笔记(Wiz)

时间: 2024-10-18 19:11:49

跟王老师学集合(一)为什么要使用集合和Java集合概述的相关文章

Scala集合和Java集合对应转换关系

作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一下,加深记忆 scala.collection.Iterable <=> java.lang.Iterable scala.collection.Iterable <=> java.util.Collection scala.collection.Iterator <=>

scala集合和Java集合对应转换操作

用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case, scala.collection.Iterable <=> java.lang.Iterable scala.collection.Iterable <=> java.util.Collection scala.collection.Iterator <=> java.util.{ Iterator, Enumeration } scala.collection.mutable.Buff

跟王老师学MySQL:集合函数

跟王老师学MySQL:集合函数 主讲教师:王少华   QQ群号:483773664 学习内容 COUNT().SUM().AVG().MAX()和MIN()四个集合函数的使用 集合函数包括COUNT().SUM().AVG().MAX()和MIN(). 一.count() (一)简介 COUNT()函数用来统计记录的条数. (二)举例 使用count()函数统计employee表的记录数 1 SELECT  COUNT(*)  FROM  employee ; 二.SUM()函数 (一)简介 S

跟王老师学集合(十):操作集合的工具类:Collections

操作集合的工具类:Collections 主讲人:王少华  QQ群号:483773664 Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集合元素实现同步控制等方法. 一.排序操作 (一).方法 Collections提供了如下几个方法用于对List集合元素进行排序 static void reverse(List list):反转指定List集合中元素的顺序 static void shu

跟王老师学集合(十一)java中Comparator的用法

Java中Comparator的用法 主讲人:王少华  QQ群号:483773664 在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口以达到我们想要的目标. 接下来我们模拟下在集合对象中对日期属性进行排序 一.实体类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package chapter07_11; public class Person {     private int a

跟王老师学MySQL:单表查询

跟王老师学MySQL:单表查询 主讲教师:王少华   QQ群号:483773664 学习内容 查询所有字段 查询指定字段 查询指定记录 带in关键字的查询 带between and关键字的查询 带like关键字的查询 查询空值 带and的多条件查询 带or的多条件查询 查询不重复记录 对查询结果进行排序 单表查询是指从一张表中查询所需要的数据.查询数据时,可以从一张表中查询数据,也可以从多张表中同时查询数据.两者的查询方式上有一定的区别.因为单表查询只在一张表上进行操作,所以查询比较简单. 一.

跟王老师学泛型(八):泛型擦除与转换

泛型擦除与转换 主讲教师:王少华 QQ群:483773664 学习目标: 掌握泛型擦除的含义 理解泛型转换的规则 一.泛型擦除 (一)什么泛型擦除 Java中的泛型基本上都是在编译器这个层次来实现的.在生成的Java字节码中是不包含泛型中的类型信息的.也就是说虚拟机中没有泛型,只有普通类和普通方法 使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉.这个过程就称为类型擦除. 类型擦除的主要过程如下:     1.将所有的泛型参数用其最左边界(最顶级的父类型)类型替换.     2.移除所有

跟王老师学MySQL:MySQL数据类型之小数类型

跟王老师学MySQL:MySQL数据类型之小数类型 主讲教师:王少华   QQ群号:483773664 学习内容 小数类型有哪些以及它们的取值范围 定义语法中的M和D的含义 定点型和浮点型的区别 一.简介 MySQL中使用浮点数类型和定点数类型来表示小数. 浮点数类型包括单精度浮点数(FLOAT型)和双精度浮点数(DOUBLE型). 定点数类型就是DECIMAL型. 二.字节数.取值范围 三.定义语法 1 类据类型 (M,D) M:精度,数据的总长度 D:标度,小数点后的长度 注: 小数点不占长

跟王老师学MySQL:MySQL数据类型之字符类型

跟王老师学MySQL:MySQL数据类型之字符类型 主讲教师:王少华   QQ群号:483773664 学习内容: 字符串类型的种类及其特点 char和varchar的异同 字符串类型是在数据库中存储字符串的数据类型. 字符串类型包括 CHAR. VARCHAR BLOB TEXT 一.char和varchar (一)定义语法 1 字符串类型 (M) 注: 字符串类型:char或varchar M:指定了该字符串最大长度 (二)二者不同之处 char类型长度是固定的,即在创建表时就指定了,其长度