java map集合加数据结构_Java集合(List,Set,Map)

一List

1.常见的数据结构

1. 数组(ArrayList)

2. 链表(LinkedList)

3. 堆栈 特点FILO(先进后出)

4. 队列(先进先出)

1.集合框架的体系

1.继承体系:Collection(所有集合类接口的超级接口)

|--List:特点 有序(添加的顺序)可以重复的数据

|--ArrayList :查询和修改效率高,但是删除和插入效率低。(线程不安全)

|--LinkedList :插入和删除效率高 (线程不安全)

|--Vector : 线程安全

2.如何选择:到底怎么使用如何选择:

1.有序(添加的顺序)可以重复的数据

2.如果查询和修改的频率高-ArrayList

3.如果插入删除频率高-LinkedList

4.如果要求线程安全 Vector

3.ArrayList

1.可以 多查API

2. 基本数据的维护,常用的CRUD方法

3. 集合的遍历

①for

②增强for循环

③迭代器

1) 单向迭代器:Iterable 接口有接口方法

返回一个Iterator

Iterator

hasNext() 是否有下一个(不会移动指针)

next() 返回下一个元素(要移动指针)

remove() 删除下一个元素

注意:如果尚未调用 next 方法,或者在上一次调用 next 方法之后已经调用 remove 方法

ConcurrentModificationException:不能在迭代过程中对数据源进行改 变

2) 双向迭代器:listIterator

是List下面的方法

所有的list的实现类都可以获取 这个对象

4.LinkedList

1. 多查询API

2. 基于数据结构的不同,他提供了很多操作头 和尾的方法

二Set

1.使用的大环境

无序(添加的顺序)不可以重复

2.HashSet

1. 判断重复的方式

(1) 通过添加进去的元素的hashCode+eqauls 两者进行比较

(2) 如果两个对象的hashCode相等 ,并且 两个对象调用equals结果是true才认为两个元素重复

2. 语法特点

不重复,无序(不保证和添加顺序一致)

3.TreeSet

1. 语法特点

(1) 无序:不保证(不记录)我们的添加顺序;但是可以保证添加里面元素是有序的。

2. Comparator 用于自定义比较器

3. Comparable 自然排序

4. 判断重复的标准

(1)如果采用的是自然排序调用对象的compareTo方法,如果返回0 表示相等;

(2)如果使用的定制排序(比较器),调用比较器的方法compare 返回0 表示相等;

三Map

1.Map

1. 什么是Map

接口 Map:将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映 射到一个值。

2. Map介绍

Map :将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到 一个值。

3. put方法

put(K key, V value) 在此映射中关联指定值与指定键。

put方法特点:

如果key不存在,直接添加进去

如果key相同,value值使用最新的值替换key对应的老值.

put方法会返回 对应key对应的老值

2.Map方法和存储结构

1. Map方法介绍

boolean containsKey(Object key) 如果此映射包含对于指定键的映射关系, 则返回 true。

boolean containsValue(Object value) 如果此映射将一个或多个键映射到指 定值,则返回 true。

get(Object key) 返回指定键所映射的值

2. Map特点

一个Map对象中不能有重复的键

3. Map存储方式

利用封装的,如果要封装,首先有个类型,这个类型是Entry,

Entry类型作用:Entry用来封装用户添加的一对数据.Entry类型有两个字段,添 加的时候,使用Entry把两个值封装成一个对象,然后放到Map容器里面。对于Map 而言,看到的只有Entry对象。

由于Entry的存在,只是对于Map来讲才有意义. 因此它使用封装,把Entry 类型设计到Map里面。相当于内部类。

3.Map的遍历方式

1. KeySet

①先得到所有key, 通过keySet方法取到;

②然后遍历keySet,依次通过key来查找value。

通过Object get(Object key)方法;

2. Entry对象方式

①先得到所有的Entry对象,Entry对象就包装了key,values;

②遍历Entry对象的集合,然后依次从Entry对象中调用方法:getKey(), getValue()

4.Collections工具类

1.多查询API

5.Properties读写文件

1. Properties特点

Properties中每个键及其对应处理的值都应该是一个字符串

String getProperties(String key)---》相当于Map的get方法,

SetProperties (String key,String value)---》相当于put方法

6.泛型

1. 多使用API

2. 泛型的上下限

? 号 :表示通配符,不确定的类型,可以表示任意类型【? extends Object】 ;

? extends Number :表示通配符?的上限 ,必须是Number及Number的子类

? Super Number: 表示通配符 ?的下限,必须是Number及Number的父类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值