【Java中级】(二)集合框架
2018-02-23 15:33
302 查看
2.1、ArraList1、自增长容器的容量"capacity"会随着对象的增加,自动增长只需要不断往容器里增加英雄即可,不用担心会出现数组的边界问题。 2、常用方法
关键字 | 简介 |
add | 增加 |
contains | 判断是否存在 |
get | 获取指定位置的对象 |
indexOf | 获取对象所处的位置 |
remove | 删除 |
set | 替换 |
size | 获取大小 |
toArray | 转换为数组 |
addAll | 把另一个容器所有对象加进来 |
clear | 清空 |
关键字 | 简介 |
for | 用for循环遍历 |
iterator | 迭代器遍历 |
for: | 用增强for循环遍历 |
2.5、CollectionsCollections是一个类,容器的工具类,就如同Arrays是数组的工具类
关键字 | 简介 |
reverse | 反转 |
shuffle | 混淆 |
sort | 排序 |
swap | 交换 |
rotate | 滚动 |
synchronizedList | 线程安全化 |
2.7、HashMap和HashTable的区别HashMap和HashTable都实现了Map接口,都是键值对保存数据的方式区别1:HashMap可以存放nullHashTable不可以存放null区别2:HashMap不是线程安全类HashTable是线程安全类
2.8、hashcode原理1、hashcode概念都有一个对应的hashcode(散列值)比如字符串“gareen”对应的是1001 (实际上不是,这里是方便理解,假设的值)比如字符串“temoo”对应的是1004比如字符串“db”对应的是1008比如字符串“annie”对应的也是10082、保存数据准备一个数组,其长度是2000,并且设定特殊的hashcode算法,使得所有字符串对应的hashcode,都会落在0-1999之间要存放名字是"gareen"的英雄,就把该英雄和名称组成一个键值对,存放在数组的1001这个位置上要存放名字是"temoo"的英雄,就把该英雄存放在数组的1004这个位置上要存放名字是"db"的英雄,就把该英雄存放在数组的1008这个位置上要存放名字是"annie"的英雄,然而 "annie"的hashcode 1008对应的位置已经有db英雄了,那么就在这里创建一个链表,接在db英雄后面存放annie3、查找数据比如要查找gareen,首先计算"gareen"的hashcode是1001,根据1001这个下标,到数组中进行定位,(根据数组下标进行定位,是非常快速的) 发现1001这个位置就只有一个英雄,那么该英雄就是gareen.比如要查找annie,首先计算"annie"的hashcode是1008,根据1008这个下标,到数组中进行定位,发现1008这个位置有两个英雄,那么就对两个英雄的名字进行逐一比较(equals),因为此时需要比较的量就已经少很多了,很快也就可以找出目标英雄这就是使用hashmap进行查询,非常快原理。
这是一种用空间换时间的思维方式
相关文章推荐
- java私塾中级2-集合框架
- Java 集合框架
- java学习日记_85:集合框架之set接口
- java中的集合框架LinkedList 简单用法
- java学习之集合框架
- 学自慕课网:Java常用集合框架(理论篇)
- 【慕课笔记】第四章 JAVA中的集合框架(上) 第10节 学生选课—应用泛型管理课程(二)
- 黑马程序员--Java面向对象——集合框架总结
- Java 集合框架-Vector
- Java 集合框架(在线教程)
- Java的集合框架最全详解(图)
- JAVA基础之集合框架
- Java开发中各种集合框架简介
- java中简单集合框架(二)
- Java基础知识强化之集合框架笔记50:Map集合之Map集合的概述和特点
- Java基础知识强化之集合框架笔记53:Map集合之Map集合的遍历 键值对对象找键和值
- Java集合(1)一 集合框架
- Java基础--集合框架之Set
- JAVA何以做到“平台无关”以及JAVA的集合框架
- Java——集合框架ArrayList