自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(187)
  • 收藏
  • 关注

原创 【Java】基于ArrayList手写HashMap集合

HashMap底层不是基于ArrayList实现的,而是基于HashCode值计算的,基于ArrayList 查询效率非常低,时间复杂度O(n)虽然可以保证存放 键值对 的有序性 但是并不可取

2023-11-01 06:47:54 171

原创 【Java】HashMap常见的面试题

HashMap常见面试题1.HashMap key 是否可以是为 我们自定义对象?——可以2.HashMap 存储数据 有序还是无序?——无序3.HashMap key 是否可以存放 null值?如果可以的话 存放在 数组中那个位置?

2023-10-31 20:59:48 182

原创 【Java】HashCode方法重写注意事项

HashCode方法是属于Object父类提供的方法,HashCode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable提供的哈希表HashCode的常规协定是:在Java应用程序执行期间,在同一个对象上多次调用hashCode方法时,必须一致地返回相同的整数。HashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,HashCode是用来在散列存储结构中确定对象的存储地址的如果equals方法比较相等,则HashCod

2023-10-31 17:57:44 404

原创 【Java】HashMap集合存入学生对象

使用HashMap存入学生对象定义学生Student实体类 成员属性 姓名、年龄定义HashMap集合存入Student对象,key存放学号 value存放学生对象这样做,可以保证学号不允许重复的

2023-10-31 10:44:54 555

原创 【Java】HashMap集合3种遍历方式

【代码】【Java】HashMap集合3种遍历方式。

2023-10-30 21:50:59 289

原创 【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 217

原创 【Java】HashSet存入学生对象

使用 HashSet 存入学生对象定义学生 Student 实体类 成员属性 学号、姓名定义 HashSet 集合存入 Student 对象,保证存放的学生对象(相同的学号和姓名)不允许重复定义 StudentManage 对 Student 对象集合实现增删改查

2023-10-30 08:11:22 310

原创 【Java】HashSet集合用法

​HashSet 集合特点HashSet 基于HashMap 来实现的,是一个不允许有重复元素的集合HashSet 允许有 null 值HashSet 是无序的,即不会记录插入的顺序HashSet集合实现了Set接口HashSet 没有Get(),所以不能使用普通for循环遍历​

2023-10-29 21:36:10 374

原创 【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 135

原创 【Java】HashMap集合

Map集合的特点键值对 映射关系 Key 和 Value一个键(Key)对应一个值(Value)键不允许重复,值可以重复如果 K 存在,直接修改Value值元素存取无序(散列存放)——Map集合存储顺序 与 Map 集合遍历的顺序可能不一致,∵ 是无序的如果想使用有序的HashMap集合,可以使用LinkedHashMap,存储与遍历顺序一致,底层是基于链表的形式连接起来的

2023-10-29 18:09:25 182

原创 【Java】LinkedList 集合

LinkedList集合特点LinkedList 底层基于双向链表实现增删 效率非常高,查询效率非常低。LinkedList源码解读分析LinkedList 是双向链表实现的 ListLinkedList 是非线程安全的(线程是不安全的)LinkedList 元素允许为null,允许重复元素LinkedList 是基于链表是实现的,因此插入删除效率高(如果根据下标增删 效率还是非常低的),查询效率低LinkedList 是基于链表实现的,因此不存在容量不足的问题,所以没有扩容的方法Li

2023-10-29 15:45:52 477

原创 【Java】数据结构链表

链表数据结构特点:增删效率非常高、查询效率非常低 时间复杂度为O(n)链表分类:单链表、双链表、环形链表等。链表数据结构 增加操作——不需要扩容的。 直接找到链表中最后一个节点(尾结点).next = 新增结点

2023-10-26 16:13:49 60

原创 【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 73

原创 【Java】ArrayList 底层是如何实现的?

ArrayList底层是基于数组实现的根据index下标查询效率非常高,时间复杂度为O(1)如果根据元素值查询 效率非常低 时间复杂度O(n)ArrayList 新增 如果底层数组容量不够的情况下就会触发动态扩容机制 效率非常低的ArrayList 删除操作,将删除后面的元素向前移动一位效率也是非常低。

2023-10-26 10:07:27 138

原创 【Java】泛型擦除机制

擦除机制:将一个List集合 泛型 赋值给一个没有使用到泛型List集合,直接去除泛型

2023-10-25 20:28:52 126

原创 【Java】可变参数

可变参数(又称 个数可变),用作方法的形参出现,那么方法参数个数就是可变的了。书写个数:格式:修饰符 返回值类型 方法名(数据类型... 量名){}范例:pubic static int sum(int... a){}可变参数 注意事项:这里的 可变参数变量 其实是一个数组如果一个方法 有多个参数,包含可变参数,可变参数要放在最后

2023-10-25 09:51:36 72

原创 【Java】泛型通配符

类型通配符 一般用于接受使用,不能够做添加List:表示元素类型未知的list,它的元素可以匹配任何类型带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中类型通配符上限:

2023-10-24 20:59:12 550

原创 【Java】List接口中泛型如何实现

List接口中泛型如何实现

2023-10-24 17:04:58 163

原创 【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 124

原创 【Java】泛型方法

格式:修饰符 返回值类型 方法名(类型 变量名){...}范例:public void show(T t){...}

2023-10-23 21:20:47 232

原创 【Java】泛型类

泛型类定义的格式:格式:修饰符 class 类名{}范例:public class Mayikt{}此处T可以随便写为任意标识,T、E、K、V 等形式的参数常用于表示泛型

2023-10-23 20:18:59 136

原创 【Java】泛型

注意:类型参数只能代表类型,不能是原始类型(例 int,double,char等)。泛型可以使用在 方法、接口、类 分别称作为:泛型类、泛型方法、泛型接口。

2023-10-22 11:09:46 174

原创 【Java】三种不同方式遍历集合

请使用多种不同的方式遍历 学生对象集合传统 for 循环迭代器Iterator增强for循环 底层基于迭代器Iterator

2023-10-21 21:25:54 267

原创 【Java】增强for循环

增强for循环(也称for each循环)是JDK1.5以后出来的一个高级 for循环,专门用来遍历数组和集合的。它的内部原理其实是一个 Iterator 迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。增强for循环 基本语法for(元素类型 元素名(自己取的变量名称):集合名或数组名){ 访问元素}

2023-10-21 21:06:47 4109 1

原创 【Java】ListIterator

列表迭代器:ListIterator listIterator():List 集合特有的迭代器该迭代器继承了 Iterator 迭代器,所以,就可以直接使用 hasNext()和next()方法。特有功能:Object previous():获取上一个元素boolean hasPrevious():判断有没有上一个元素注意:ListIterator可以逆向遍历list,但是前提是先正向遍历,然后才能逆向遍历。一般情况下 不使用

2023-10-21 20:18:38 616

原创 【Java】List集合中独有的方法

有序集合,用可以精确的控制列表中每个元素的插入位置。可以通过整数索引访问元素,并搜索列表中的元素。与 Set 集合不同,List 集合通常允许重复的元素List 集合的特点:有序:存储和取出的元素顺序一致可重复:存储的元素可以重复

2023-10-21 16:57:45 98

原创 【Java】迭代器的next方法

概述:Iteration:迭代器,集合的专用遍历方式Iterator Iterator() 返回在此 collection 的元素上进行迭代的迭代器boolean hasNext() 如果返回仍有元素可以迭代,则返回 trueE next() 返回迭代的下一个元素

2023-10-21 16:23:39 1081

原创 【Java】学生管理系统项目演示

ArrayList学生管理系统因此,如果您想在调用nextInt()方法后使用nextLine()方法读取字符串,您需要在nextInt()方法之后额外调用一次nextLine()方法,以消耗留在输入流中的换行符。或者,将所有输入都使用nextLine()方法读取,并将需要转换为整数的字符串使用Integer.parseInt()方法转换。

2023-10-20 17:42:05 159

原创 【Java】ArrayList集合存入学生对象

需求:创建一个存储学生对象的集合,存储5个学生对象,使用程序实现在控制台遍历该集合

2023-10-19 18:25:57 1017

原创 【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 567 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

原创 【Java】为什么需要使用集合框架

集合概念:存放多个元素内容框架:底层封装好 提供简单的api 给开发人员使用java框架:spring springmvc集合框架:JDK帮助我们封装好的 ArrayList / Map / Set为什么需要学习Java中集合框架呢?原生的数组 在 存放数据 在最开始定义容量的大小,在以后如果 继续存放数据,可能 容量无法装下的。就会报错...

2023-10-19 14:46:36 70

原创 【Java】异常

程序从try里面的代码开始执行,出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统当Java运行时系统接收到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理执行完毕之后,程序还可以继续往下执行Java 允许在方法后面使用 throws 关键字对外声明该方法有可能发生异常,这样调用者在调用方法时,就明确地知道该方法有异常,并且必须在程序中对异常进行处理,否则编译无法通过。编译时异常和运行时异常的区别

2023-10-17 19:14:10 129

原创 【Java】二月份有多少天?

需求:获取任意一年的二月份有多少天注意:平年2月28天,闰年2月29天。平年2月28天,平年一年365天;闰年2月29天,闰年一年366天。思路:键盘录入任意的年份使用Calendar设置日历对象的年月日年:来自于键盘录入月:设置为3月,月份是从0开始的,所以设置的值是2日:设置为1日3月1日往前推一天,就是2月的最后一天

2023-10-17 12:49:13 625

原创 【Java】CalendarApi使用

Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。Calendar提供了一个类方法 getInstance 用于获取 Calendar对象。其日历字段已使用当前日期和时间初始化:获取年月日c.get(Calendar.YEAR);//获取年c.get(Calendar.MONTH)+1;//获取月c.get(Calendar.DATE);//获取日修改年月日c.add(Calendar.YEAR,-3);//年份减3年设置年月日

2023-10-17 11:40:59 116

原创 【Java】DateUtils工具类设计

需求:定义一个日期工具类(DateUtils)包含两个方法:把日期转换为指定格式的字符串把字符串解析为指定格式的日期工具类设计 构造方法私有化、方法提供 public static 修饰 静态方法访问

2023-10-17 11:04:18 182

原创 【Java】SimpleDateFormat格式化日期

SimpleDateFormat格式化和解析日期格式化日期(Date 转化 String)String format(Date date) 将 Date 格式化日期/时间字符串解析(从String 到 Date) Date parse(String source) 将给定的字符串解析成日期/时间

2023-10-17 10:09:47 3397 1

原创 【Java】Data日期

分配一个Date对象,并初始化,以便代表它所分配的时间,精确到毫秒 分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数获取的日期对象从1970年1月1日00:00:00到现在的毫秒值设置时间,给的毫秒值打印出来的时间是8点而非0点,原因是存在系统时间和本地时间的问题,其实系统时间依然是0点,只不过我的电脑时区设置为东8区,故打印出来的结果是8点。CST-中国标准时间:China Standard Time UT+8:00格林威治时间(GMT)与中国时间相差8小时java 起源

2023-10-16 21:07:22 170

原创 【Java】字符串中的数据排序

需求:有一个字符串:“97,16,36,18,50”,请写程序实现最终输出结果是:“16,18,36,50,97”思路:将字符串按照逗号分割成一个字符串数组将其中的每个字符元素转换为数字将转换后的数字保存到一个整型数组中使用Arrays提供的排序方法或者使用我们自己写的排序方法对数组进行排序

2023-10-16 19:47:47 371

原创 【Java】装箱和和拆箱设计原理

装箱:就是自动将基本数据类型转换为包装器类型;拆箱:就是自动将包装器类型转换为基本数据类型;在装箱的时候自动调用的是 Integer 的 valueOf(int)方法在拆箱的时候自动调用的是 Integer 的 intValue() 方法。

2023-10-16 19:16:39 75

Python网络爬虫实战

本博客是一个Python网络爬虫的实战指南,旨在帮助读者掌握如何利用Python语言进行网页抓取和处理。主要介绍了使用flask、requests、BeautifulSoup、Threading、Scrapy、selenium等常用库和框架进行爬虫开发的技巧和方法,并结合实际案例进行了详细讲解。适用于对Python爬虫开发感兴趣的初学者和有一定编程基础的开发者。 内容概要:本博客共分为5章,首先介绍了flask搭建网站,然后详细介绍了使用requests、BeautifulSoup、Scrapy、selenium等库和框架进行爬虫开发的技巧和方法。在每个章节中,作者不仅提供了具体的案例和代码实现,还针对可能出现的问题和风险进行了分析和应对。此外,还提供了一些进阶内容,如多线程爬取、模拟登录等,帮助你进一步提升技能。 适用人群:适用于对Python爬虫开发感兴趣的初学者和有一定编程基础的开发者。无论你是计算机专业的学生、研究人员还是开发人员,都可以从这里中找到有价值的内容。 其他说明:在爬取数据时,请务必遵守相关法律法规和网站的条款协议,尊重他人的劳动成果和隐私权。严禁用于非法用途。

2023-09-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除