建设阅读网站的目的,个人网站需要哪些内容,wordpress跨域,网站建设公司销售技巧目录 1 介绍2 学习的意义2.1 Java 集合框架的优点及作用2.2 笔试及面试题 3 接口 interfaces3.1 基本关系说明3.2 Collection 常用方法说明3.3 Collection 示例3.4 Map 常用方法说明3.5 Map 示例 4 实现 classes5 Java数据结构知识体系5.1 目标5.2 知识点 1 介绍
集合#xf… 目录 1 介绍2 学习的意义2.1 Java 集合框架的优点及作用2.2 笔试及面试题 3 接口 interfaces3.1 基本关系说明3.2 Collection 常用方法说明3.3 Collection 示例3.4 Map 常用方法说明3.5 Map 示例 4 实现 classes5 Java数据结构知识体系5.1 目标5.2 知识点 1 介绍
集合 是什么 它把数据结构全部封装好了比如ArrayList的背后其实就是顺序表。 Java集合框架Java Collection Framework 又被称为容器 container 是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。 其主要表现为将多个元素 element 置于一个单元中用于对这些元素进行快速、便捷的存储 store 、检索retrieve 、管理 manipulate 即平时我们俗称的增删查改 CRUD 。 例如一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等。 类和接口的总览图如下图所示 图中浅黄色的代表接口浅蓝色的代表抽象类深黄色的代表具体实现类。比如Collection接口和Iterable接口之间就是拓展extends关系AbstractList这个抽象类和List之间就是implements关系。Collection接口一般存储“单个”元素Queue接口代表队列Set接口代表集合数学意义上的集合List接口代表顺序表、链表。迭代器就比如我们遍历数组用for循环那么遍历集合就可以用Iterator来进行遍历对象比较有Comparable和Comparator;操作数组的工具类Arrays,操作集合的工具类Collections。 所以对于上面这张图我们目前要认识到两个点1关系接口-接口类-接口。2每一个具体的实现类到底实现了哪些接口。
集合有很多为什么 答因为集合背后都是数据结构。描述和组织数据的方式不一样造就了有这么多的数据结构也就是为什么有这么多的集合也就是场景不一样。
2 学习的意义
2.1 Java 集合框架的优点及作用
使用成熟的集合框架有助于我们便捷、快速的写出高效、稳定的代码。学习背后的数据结构知识有助于我们理解各个集合的优缺点及使用场景。
2.2 笔试及面试题
腾讯-Java后台开发面经 HashMap 了解不介绍一下如果一个对象为 key 时hashCode 和 equals 方法的用法要注意什么HashSet 和 HashMap 的区别是什么HashMap 是线程安全的么那需要线程安全需要用到什么 阿里巴巴-Java后台开发面经 ArrayList 和 LinkedList 的区别是什么有了解过 HashMap 的具体实现么HashMap 和 ConcurrentHashMap 哪个效率更高 今日头条-Java后台开发面经 编程题判断一个链表是否是一个回文链表。Redis 的 zset 类型对应到 java 语言中大致是什么类型hashCode 主要是用来做什么用的 3 接口 interfaces
3.1 基本关系说明 Collection 用来存储管理一组对象 objects这些对象一般被称为元素elements。
Set : 元素不能重复背后隐含着查找/搜索的语义。SortedSet : 一组有序的不能重复的元素。List : 线性结构。Queue : 队列。Deque : 双端队列。
Map 键值对 Key-Value-Pair 背后隐含着查找/搜索的语义。
SortedMap : 一组有序的键值对。
3.2 Collection 常用方法说明
方法签名说明boolean add(E e)将元素 e 放入集合中void clear()删除集合中的所有元素boolean isEmpty()判断集合是否没有任何元素俗称空集合boolean remove(Object e)如果元素e出现在集合中删除其中一个int size()返回集合中的元素个数Object[] toArray()返回一个装有所有集合中元素的数组
3.3 Collection 示例
import java.util.Collection;
import java.util.ArrayList;
import java.util.Arrays;public class TestDemo {public static void main(String[] args) {//CollectionString collection new ArrayListString();//后面尖括号里也可以省略掉写成这样的格式CollectionString collection new ArrayList();//指定了当前这个集合里面只能放String类型所以放1会报错//collection.add(1);CollectionString list new ArrayList();System.out.println(list.size());//0System.out.println(list.isEmpty());//truelist.add(我);list.add(爱);list.add(Java);System.out.println(list.size());//3System.out.println(list.isEmpty());//falseObject[] array list.toArray();System.out.println(Arrays.toString(array));//[我, 爱, Java]for (String s : list) {System.out.println(s);//我 爱 Java}list.remove(爱);for (String s : list) {System.out.println(s);//我 Java}list.clear();System.out.println(list.size());//0System.out.println(list.isEmpty());//true}}3.4 Map 常用方法说明
方法签名说明V get(Object k)根据指定的k查找对应的vV getOrDefault(Object k, V defaultValue)根据指定的k查找对应的v,没有找到用默认值代替V put(K key, V value)将指定的k-v放入Mapboolean containsKey(Object key)判断是否包含kboolean containsValue(Object value)判断是否包含valuesetMap.EntryK,VentrySet()将所有键值对返回boolean isEmpty()判断是否为空int size()返回键值对的数量
3.5 Map 示例
import java.util.Map;
import java.util.HashMap;public class TestDemo {public static void main(String[] args) {MapString, String map new HashMap();System.out.println(map.size());//0System.out.println(map.isEmpty());//trueSystem.out.println(map.get(作者));//nullSystem.out.println(map.getOrDefault(作者, 佚名));//佚名System.out.println(map.containsKey(作者));//falseSystem.out.println(map.containsValue(佚名));//falsemap.put(作者, 鲁迅);map.put(标题, 狂人日记);map.put(发表时间, 1918年);System.out.println(map.size());//3System.out.println(map.isEmpty());//falseSystem.out.println(map.get(作者));//鲁迅System.out.println(map.getOrDefault(作者, 佚名));//鲁迅System.out.println(map.containsKey(作者));//trueSystem.out.println(map.containsValue(佚名));//falsefor (Map.EntryString, String entry : map.entrySet()) {System.out.println(entry.getKey());//作者 发表时间 标题System.out.println(entry.getValue());//鲁迅 1918年 狂人日记}}}4 实现 classes 除此之外我们还会学习 java 中的栈 Stack。
5 Java数据结构知识体系
5.1 目标
学习集合框架的基本使用。学习基本的数据结构知识。学习七大基于比较的排序算法。学习相关的 java 知识点。
5.2 知识点
集合框架的使用
CollectionListArrayListLinkedListStackQueuePriorityQueueDequeSetHashSetTreeSetMapHashMapTreeMapCollections
数据结构的理论及实现
顺序表链表栈队列二叉树堆
排序算法
插入排序希尔排序选择排序堆排序冒泡排序快速排序归并排序
Java 语法
泛型 Generic自动装箱 autobox 和自动拆箱 autounboxObject 的 equals 方法 比特科技Comparable 和 Comparator 接口