自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kotlin实现ArrayDeque

Deque双端队列,一直在使用,却从未了解过源码。

2023-10-11 00:34:54 652

原创 kotlin实现LRUCache

与一般的结构不同,参考了LinkedHashMap,将经常访问的放在最后,linkedLast()相关题目,https://leetcode.cn/problems/lru-cache/

2023-09-26 18:35:59 649

原创 objList=strList为什么报错

先看下面一段代码乍一看好像没什么问题,但为什么追报错呢?先别急,看下面一段代码偷偷把str放到objList里了,但又从intList拿出来了?看来你应该知道编译器为什么报错了吧,就是为了防止小白偷偷添加一些奇怪的东西。

2023-09-14 16:04:04 290

原创 kotlin实现HashMap

以后写。

2023-09-08 21:36:33 823

原创 Java HashMap源码学习

/ AbstractMap,可以随机访问// 初始容量// 最大容量// 负载因子,当前容量超过最大容量*负载因子,开始扩容// 链表大于8树化// 树小于6链化// 树化的最小容量// 存储key,value// 通过key中字段计算V value;// 省略get,set等模板方法HashMap可以存储键值对初始容量是16,每次扩容2倍数先添加,后扩容从尾部添加。

2023-09-07 22:05:10 242

原创 RecyclerView的局部刷新居然这么简单

面试时经常被问到Android列表控件RecyclerView,无非就是深入源码与ListView进行对比,四层缓存和局部刷新。而今天的重点就是局部刷新。

2023-09-01 18:52:03 776

原创 Kotllin实现ArrayList的基本功能

上次面试时,手写ArrayList竟然翻车,忘了里面的扩容与缩容的条件,再次实现一次,加深印象。

2023-08-20 19:53:25 454

原创 使用Kotlin实现Java的优先队列PriorityQueue

使用Kotlin实现Java的优先队列PriorityQueue

2023-08-19 19:38:20 945

原创 简单模拟livedata数据倒灌

livedata内部通过版本号更新可见视图数据,而在view在活跃与不活跃之间反复横跳时,livedata也会通知数据。数据倒灌,就是将旧的或只展示一次的数据再次展现出来。不会导入视频,在这个链接里,

2023-08-03 19:31:16 529

原创 快排kotlin

【代码】快排kotlin。

2023-07-25 19:22:27 62

原创 使用Powershell快速建立adb连接

新建文件后,更改文件后缀为.ps,直接拖拽到Powershell命令框里就可以直接建立连接了。IP的查找比较繁琐,可以在手机上看,也可以通过命令查看。方便快捷,现在多学一点,以后可以少学一点。但使用封装代码能简化这一步骤。在建立adb连接时,默认是。

2023-06-20 01:37:09 1013 1

原创 内容提供者的简单使用

ContentProvider的简单使用

2023-03-04 11:44:56 530

原创 stream用法 平均算法题少5-6行代码

先掌握基本用法,stream 还有着极大的潜力。

2022-12-25 16:00:02 142

原创 实现BottomNavigationView和Navigation联动

实现BottomNavigationView和Navigation联动界面展示引入依赖创建Fragment创建navigation为BottomNavigationView创建menu主界面布局实现BottomNavigationView和Navigation联动界面展示引入依赖// Navigationimplementation "androidx.navigation:navigation-fragment:2.2.2"implementation "androidx.navigation

2022-05-29 14:37:36 679 1

原创 RecyclerView结合ViewBinding的使用

RecyclerView结合ViewBinding的使用引入ViewBinding添加Adapter子布局RecyclerViewAdapter实现引入ViewBindingandroid {compileSdk 32defaultConfig { ... ... viewBinding { enabled = true }}添加Adapter子布局<?xml version="1.0" encoding="utf-8"?><

2022-05-29 11:36:11 297

原创 基于rxjava实现的小说练习项目

基于rxjava实现的小说练习项目界面展示带尺寸的图片:

2022-05-28 20:39:35 596

原创 将力扣字符串形式的二维数组转换成Java二维数组

class MyTest { public int[][] toArray(String s) { // String s = "[[1,3,1],[1,5,1],[4,2,1]]"; String[] split = s.split("],\\["); int[][] ints1 = new int[split.length][]; for (int i = 0; i < split.length; i++) {

2022-05-07 18:16:57 479

原创 RxJava

依赖// RxAndroid implementation 'io.reactivex:rxandroid:1.2.1' implementation 'io.reactivex:rxjava:1.2.0' // Retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.5.0'Ma

2022-04-29 20:19:23 89

原创 Android开发之调用相机拍照与本地图库选择图片

引用链接Android开发之调用相机拍照与本地图库选择图片Android调用相机实现拍照功能部分截图引言小项目有一个访问相册的需求,在网上查找得到两位大神博客指点,但博客发布时间过旧,难免因更新而产生Bug,我便把Bug进行修改并对代码进行了适量调整,供大家参考MainActivity2package com.example.myapplication;import android.Manifest;import android.app.Activity;import androi

2022-04-09 18:20:29 1030

原创 组件化改造框架--------ARouter

1.添加依赖和配置android { defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.getName()] } } }}dependencies { // 替换成最新版本, 需

2022-01-10 12:40:49 76

原创 安卓网络请求--------retrofit

导入依赖// 网络请求implementation 'com.squareup.retrofit2:retrofit:2.6.1'implementation 'com.squareup.retrofit2:converter-gson:2.6.1'请求数据[{"id":"1","name":"小红","version":"21"},{"id":"2","name":"小丽","version":"32"},{"id":"2","name":"王刚","version":"41"}]根据

2021-12-21 17:54:52 190

原创 SwipeRefreshLayout的简单使用

引入依赖implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'简单使用swipeRefreshLayout.setOnRefreshListener { if (random.nextBoolean()) loadImg(IMG_URL) else loadImg(IMG_URL2)//网络请求 swipeRefreshLayout.isRefreshing = false}...

2021-12-02 18:41:20 130

原创 Glide的简单使用

添加依赖implementation 'com.github.bumptech.glide:glide:4.12.0'annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'简单使用Glide.with(this) .load(IMG_URL) .placeholder(R.drawable.ic_launcher_background)//占位图 .listener(object : RequestLi

2021-12-02 17:43:31 1720

原创 Volley的简单使用

添加依赖implementation 'com.android.volley:volley:1.1.1'添加权限<uses-permission android:name="android.permission.INTERNET"/>简单使用val queue = Volley.newRequestQueue(this)val stringRequest = StringRequest( Request.Method.GET, URL, {

2021-12-02 16:52:58 1543

原创 Retrofit的简单使用

引入依赖implementation 'com.squareup.retrofit2:retrofit:2.6.1'implementation 'com.squareup.retrofit2:converter-gson:2.6.1'添加权限<uses-permission android:name="android.permission.INTERNET"/>json数据{"id":"1","name":"123qwe小王","version":"1"}实体类data

2021-12-02 16:34:23 2189

原创 Room的简单使用

引入依赖id 'kotlin-kapt'implementation "androidx.room:room-runtime:2.1.0"kapt "androidx.room:room-compiler:2.1.0"Entity实体类import androidx.room.Entityimport androidx.room.PrimaryKey@Entitydata class User( var firstName: String, var lastName:

2021-12-01 14:42:07 620

原创 ViewModel的简单使用

引入依赖 implementation 'androidx.fragment:fragment-ktx:1.2.2'实现自增功能import androidx.lifecycle.LiveDataimport androidx.lifecycle.MutableLiveDataimport androidx.lifecycle.SavedStateHandleimport androidx.lifecycle.ViewModelclass MyViewModel(private va

2021-12-01 13:34:57 336

原创 Android常见报错

报错:“Cannot access androidx.lifecycle.HasDefaultViewModelProviderFactory” 可正常运行解决方法:添加库:implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'implementation 'androidx.lifecycle:lifecycle-runtime:2.2.0'

2021-11-28 22:10:52 727

原创 安卓常用依赖

更新时间2021年10月26日 implementation 'com.google.code.gson:gson:2.8.8//json解析 implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.2'//网络请求 implementation 'com.squareup.okio:okio:3.0.0-alpha.10'//网络请求 implementation 'org.jsoup:jsoup:1.12.1'//jsou

2021-10-26 20:09:44 139

原创 SHA1的获取方法

public static String sHA1(Context context) { try { StringBuilder stringBuilder = new StringBuilder(); PackageInfo info = context.getPackageManager().getPackageInfo( context.getPackageName(), PackageManage

2021-10-23 17:57:12 173

原创 安卓网络请求--------okhttp

安卓网络请求先看一下今天的大纲导入okhttp和okio依赖禁用掉明文流量请求的检查添加访问权限布局及代码实现运行结果下面是具体步骤一、导入okhttp和okio的依赖1.打开File-Project Structure-Dependencies,2.选择自己的程序文件,点击加号,选择Library Dependency3.搜索okhttp,选择Com.squareup.okhttp3,点击ok按钮5.okio同上6.应用,确认7.此时我们可以看到Gradle Sc

2021-10-17 19:18:10 668

原创 你真的了解空格吗

你是否被空格所欺骗先说一下我遇到的问题,我在网页上复制了一段文字backward 退步的,相反的bald 秃的balk 妨碍balmy 温和的band 条,带,联合,结合bandit 强盗banish 驱逐出境bar 法院barbarian 野蛮……我需要送字符串中筛选出英文字符,并且实现英文字符之间存在一个空格,目标如下// baboon backward bald balk balmy band bandit banish bar barbarian搜首先复习了一下文件操作,读取到st

2021-10-10 17:35:29 115

原创 三目表达式的错误使用

项目场景:三目表达式的错误使用问题描述:使用三目表达式报错map2.get(poll) == 1 ? map2.remove(poll) : map2.put(poll, map2.get(poll) - 1); 原因分析:@青衫白衣小黑炭 (来自q群大佬)条件表达式不能单独使用简单来说,可以理解成条件表达式是有一个返回值的,而且这个返回值必须使用(这个只是抽象理解)可以给它赋值,也可以当成参数传递给函数,就是不能直接使用解决方案:按下alt+enter,系统给出两

2021-08-29 09:36:21 166

原创 常见排序算法

以后有时间再补充package com.suanfa.paixv;public class Test { public static void main(String[] args) { int num = 1000000; int[] nums = new int[num]; for (int i = 0; i < num; i++) { nums[i] = num - i; } l

2021-08-13 16:42:53 87

原创 类加载与反射

没写到的地方下次一定补package com.haojinhui2.fanshe;public class Animal { private String name; public int age; public Animal() { } private Animal(String name, int age) { this.name = name; this.age = age; } private vo

2021-08-12 15:07:38 61

原创 stream流

以后有时间再补stream流中普遍使用lambda表达式,使用stream流是对lambda复习和强化使用stream流步骤一般分为三种:生成流,操作流和结果一,生成流 1. collect ArrayList<String> list = new ArrayList<>(); Stream stream = list.stream(); HashSet<Integer> set = new HashSet

2021-08-10 20:45:55 84

原创 函数式接口

函数式接口Supplier, Consumer, Predicate, FunctionSupplier: 生产 Supplier s = () -> "生产了一个字符串"; System.out.println(s.get());Consumer: 消费 Consumer<String> c = System.out::println; c.accept("abc"); Consumer<String> c2 = s -&gt

2021-08-09 22:52:31 51

原创 网络和服务

以后有时间再加注释package com.haojinhui2.wangluo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class Send { pu

2021-08-08 21:47:49 66

原创 多线程启动

public class Test extends Thread{ @Override public void run() { System.out.println("test"); } public static void main(String[] args) { new Test().start(); }}public class Test implements Runnable{ @Override pu

2021-08-08 12:55:29 42

原创 IO流总结

String fileName = "text.txt"; // 文件名 FileOutputStream fos = new FileOutputStream(fileName); fos.write('a'); // 1 fos.write("abc".getBytes()); // 2 fos.close(); String fileName = "text.txt"; ..

2021-08-07 15:49:20 80

空空如也

空空如也

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

TA关注的人

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