![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
即使再小的船也能远航
邮箱:1121964082@qq.com
vx:1121964082
展开
-
【Java】基于ArrayList手写HashMap集合
HashMap底层不是基于ArrayList实现的,而是基于HashCode值计算的,基于ArrayList 查询效率非常低,时间复杂度O(n)虽然可以保证存放 键值对 的有序性 但是并不可取原创 2023-11-01 06:47:54 · 168 阅读 · 0 评论 -
【Java】HashMap常见的面试题
HashMap常见面试题1.HashMap key 是否可以是为 我们自定义对象?——可以2.HashMap 存储数据 有序还是无序?——无序3.HashMap key 是否可以存放 null值?如果可以的话 存放在 数组中那个位置?原创 2023-10-31 20:59:48 · 179 阅读 · 0 评论 -
【Java】HashCode方法重写注意事项
HashCode方法是属于Object父类提供的方法,HashCode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable提供的哈希表HashCode的常规协定是:在Java应用程序执行期间,在同一个对象上多次调用hashCode方法时,必须一致地返回相同的整数。HashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,HashCode是用来在散列存储结构中确定对象的存储地址的如果equals方法比较相等,则HashCod原创 2023-10-31 17:57:44 · 382 阅读 · 0 评论 -
【Java】HashMap集合存入学生对象
使用HashMap存入学生对象定义学生Student实体类 成员属性 姓名、年龄定义HashMap集合存入Student对象,key存放学号 value存放学生对象这样做,可以保证学号不允许重复的原创 2023-10-31 10:44:54 · 544 阅读 · 0 评论 -
【Java】HashMap集合3种遍历方式
【代码】【Java】HashMap集合3种遍历方式。原创 2023-10-30 21:50:59 · 281 阅读 · 0 评论 -
【Java】HashMap集合常用Get()
Map集合的获取方V get(Object key) 根据键获取值Set key Set() 获取所有键的集合(返回Set集合)Collection values() 获取所有值的集合(返回Collection 集合)SetentrySet() 获取所有键值对象的集合default V getOrDefault(Object key,V defaultValue) 如果存在相应的key则返回其对应的value,否则返回给定的默认值defaultValue原创 2023-10-30 21:03:48 · 205 阅读 · 0 评论 -
【Java】HashSet存入学生对象
使用 HashSet 存入学生对象定义学生 Student 实体类 成员属性 学号、姓名定义 HashSet 集合存入 Student 对象,保证存放的学生对象(相同的学号和姓名)不允许重复定义 StudentManage 对 Student 对象集合实现增删改查原创 2023-10-30 08:11:22 · 302 阅读 · 0 评论 -
【Java】HashSet集合用法
HashSet 集合特点HashSet 基于HashMap 来实现的,是一个不允许有重复元素的集合HashSet 允许有 null 值HashSet 是无序的,即不会记录插入的顺序HashSet集合实现了Set接口HashSet 没有Get(),所以不能使用普通for循环遍历原创 2023-10-29 21:36:10 · 366 阅读 · 0 评论 -
【Java】Map集合中常用方法
V put(Key k,V value) 添加元素V remove(K key, V value) 根据键值删除对应的值void clear() 清除所有键值元素boolean containsKey(Object key) 判断集合中是否包含指定的键boolean containsValue(Object value) 判断集合中是否包含指定的值boolean isEmpty() 判断集合是否为空size() 返回集合中存放元素的个数原创 2023-10-29 19:46:33 · 132 阅读 · 0 评论 -
【Java】HashMap集合
Map集合的特点键值对 映射关系 Key 和 Value一个键(Key)对应一个值(Value)键不允许重复,值可以重复如果 K 存在,直接修改Value值元素存取无序(散列存放)——Map集合存储顺序 与 Map 集合遍历的顺序可能不一致,∵ 是无序的如果想使用有序的HashMap集合,可以使用LinkedHashMap,存储与遍历顺序一致,底层是基于链表的形式连接起来的原创 2023-10-29 18:09:25 · 176 阅读 · 0 评论 -
【Java】LinkedList 集合
LinkedList集合特点LinkedList 底层基于双向链表实现增删 效率非常高,查询效率非常低。LinkedList源码解读分析LinkedList 是双向链表实现的 ListLinkedList 是非线程安全的(线程是不安全的)LinkedList 元素允许为null,允许重复元素LinkedList 是基于链表是实现的,因此插入删除效率高(如果根据下标增删 效率还是非常低的),查询效率低LinkedList 是基于链表实现的,因此不存在容量不足的问题,所以没有扩容的方法Li原创 2023-10-29 15:45:52 · 466 阅读 · 0 评论 -
【Java】数据结构链表
链表数据结构特点:增删效率非常高、查询效率非常低 时间复杂度为O(n)链表分类:单链表、双链表、环形链表等。链表数据结构 增加操作——不需要扩容的。 直接找到链表中最后一个节点(尾结点).next = 新增结点原创 2023-10-26 16:13:49 · 56 阅读 · 0 评论 -
【Java】Vector 与 ArrayList 集合区别
Vector 与 ArrayList 集合区别相同点ArrayList 和 Vector 默认 初始化容量=10底层都是基于数组实现List 接口下子类不同点ArrayList 线程是不安全的,Vector 线程是安全的ArrayList 每次扩容是原来容量的1.5倍Vector 每次默认扩容是原来容量的2倍,但是可以设置 每次扩容的容量ArrayList 懒加载的形式 初始化容量,Vector 直接通过构造函数初始化 数组容量=10原创 2023-10-26 11:43:35 · 69 阅读 · 0 评论 -
【Java】ArrayList 底层是如何实现的?
ArrayList底层是基于数组实现的根据index下标查询效率非常高,时间复杂度为O(1)如果根据元素值查询 效率非常低 时间复杂度O(n)ArrayList 新增 如果底层数组容量不够的情况下就会触发动态扩容机制 效率非常低的ArrayList 删除操作,将删除后面的元素向前移动一位效率也是非常低。原创 2023-10-26 10:07:27 · 129 阅读 · 0 评论 -
【Java】泛型擦除机制
擦除机制:将一个List集合 泛型 赋值给一个没有使用到泛型List集合,直接去除泛型原创 2023-10-25 20:28:52 · 122 阅读 · 0 评论 -
【Java】可变参数
可变参数(又称 个数可变),用作方法的形参出现,那么方法参数个数就是可变的了。书写个数:格式:修饰符 返回值类型 方法名(数据类型... 量名){}范例:pubic static int sum(int... a){}可变参数 注意事项:这里的 可变参数变量 其实是一个数组如果一个方法 有多个参数,包含可变参数,可变参数要放在最后原创 2023-10-25 09:51:36 · 67 阅读 · 0 评论 -
【Java】泛型通配符
类型通配符 一般用于接受使用,不能够做添加List:表示元素类型未知的list,它的元素可以匹配任何类型带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中类型通配符上限:原创 2023-10-24 20:59:12 · 547 阅读 · 0 评论 -
【Java】List接口中泛型如何实现
List接口中泛型如何实现原创 2023-10-24 17:04:58 · 156 阅读 · 0 评论 -
【Java】泛型接口 与 泛型方法
格式:修饰符 interface 接口名 {...}范例:public interfae mayiktInterface {...} * 1. 泛型接口 MayiktInterface * 2. 泛型方法 T show(T t); * 注意:如果使用泛型方法 T show(T t); 第3个T类型就代表第1个T——泛型方法 * 如果没有使用泛型方法 T show(T t); 第2个 T类型就代表——泛型接口中的T * 问题: 如果即想使用 泛型接口原创 2023-10-23 21:50:20 · 119 阅读 · 0 评论 -
【Java】泛型方法
格式:修饰符 返回值类型 方法名(类型 变量名){...}范例:public void show(T t){...}原创 2023-10-23 21:20:47 · 215 阅读 · 0 评论 -
【Java】泛型类
泛型类定义的格式:格式:修饰符 class 类名{}范例:public class Mayikt{}此处T可以随便写为任意标识,T、E、K、V 等形式的参数常用于表示泛型原创 2023-10-23 20:18:59 · 136 阅读 · 0 评论 -
【Java】泛型
注意:类型参数只能代表类型,不能是原始类型(例 int,double,char等)。泛型可以使用在 方法、接口、类 分别称作为:泛型类、泛型方法、泛型接口。原创 2023-10-22 11:09:46 · 174 阅读 · 0 评论 -
【Java】三种不同方式遍历集合
请使用多种不同的方式遍历 学生对象集合传统 for 循环迭代器Iterator增强for循环 底层基于迭代器Iterator原创 2023-10-21 21:25:54 · 266 阅读 · 0 评论 -
【Java】增强for循环
增强for循环(也称for each循环)是JDK1.5以后出来的一个高级 for循环,专门用来遍历数组和集合的。它的内部原理其实是一个 Iterator 迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。增强for循环 基本语法for(元素类型 元素名(自己取的变量名称):集合名或数组名){ 访问元素}原创 2023-10-21 21:06:47 · 3990 阅读 · 1 评论 -
【Java】ListIterator
列表迭代器:ListIterator listIterator():List 集合特有的迭代器该迭代器继承了 Iterator 迭代器,所以,就可以直接使用 hasNext()和next()方法。特有功能:Object previous():获取上一个元素boolean hasPrevious():判断有没有上一个元素注意:ListIterator可以逆向遍历list,但是前提是先正向遍历,然后才能逆向遍历。一般情况下 不使用原创 2023-10-21 20:18:38 · 615 阅读 · 0 评论 -
【Java】List集合中独有的方法
有序集合,用可以精确的控制列表中每个元素的插入位置。可以通过整数索引访问元素,并搜索列表中的元素。与 Set 集合不同,List 集合通常允许重复的元素List 集合的特点:有序:存储和取出的元素顺序一致可重复:存储的元素可以重复原创 2023-10-21 16:57:45 · 98 阅读 · 0 评论 -
【Java】迭代器的next方法
概述:Iteration:迭代器,集合的专用遍历方式Iterator Iterator() 返回在此 collection 的元素上进行迭代的迭代器boolean hasNext() 如果返回仍有元素可以迭代,则返回 trueE next() 返回迭代的下一个元素原创 2023-10-21 16:23:39 · 1064 阅读 · 0 评论 -
【Java】学生管理系统项目演示
ArrayList学生管理系统因此,如果您想在调用nextInt()方法后使用nextLine()方法读取字符串,您需要在nextInt()方法之后额外调用一次nextLine()方法,以消耗留在输入流中的换行符。或者,将所有输入都使用nextLine()方法读取,并将需要转换为整数的字符串使用Integer.parseInt()方法转换。原创 2023-10-20 17:42:05 · 158 阅读 · 0 评论 -
【Java】ArrayList集合存入学生对象
需求:创建一个存储学生对象的集合,存储5个学生对象,使用程序实现在控制台遍历该集合原创 2023-10-19 18:25:57 · 991 阅读 · 0 评论 -
【Java】ArrayList集合使用
ArrayList集合ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制;ArrayList 继承了 AbstractList,并实现了List 接口;ArrayList 类位于 java.util 包中,使用前需要引入它语法格式:import java.util.ArrayList;//引入 ArrayList类ArrayList objectName = new ArrayList(); //初始化E:泛型数据类型,用于设置objectNa原创 2023-10-19 18:04:19 · 564 阅读 · 1 评论 -
【Java】java中的集合框架组成部分
集合框架组成部分:1. Collection(存放单列数据)List 接口——存放数据可以允许重复的ArrayList 底层基于 数组 数据结构实现LinkedList 底层基于 链表 数据结构实现Set 接口——不允许存放重复数据(特点:去重)HashSet 不允许存入重复数据 底层基于Map集合实现2. Map(存入多列数据)HashMapJDK1.7 底层基于数组+链表实现JDK1.8开始底层基于数组+链表+红黑树实现HashTable底层实现和HashMap一样的,线原创 2023-10-19 16:28:50 · 96 阅读 · 0 评论 -
【Java】为什么需要使用集合框架
集合概念:存放多个元素内容框架:底层封装好 提供简单的api 给开发人员使用java框架:spring springmvc集合框架:JDK帮助我们封装好的 ArrayList / Map / Set为什么需要学习Java中集合框架呢?原生的数组 在 存放数据 在最开始定义容量的大小,在以后如果 继续存放数据,可能 容量无法装下的。就会报错...原创 2023-10-19 14:46:36 · 69 阅读 · 0 评论