自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程间通信

编写两个线程 一个线程打印1~25,另一个线程打印字母A~Zpublic static void main(String[] args) { final Object object = new Object(); final LinkedList<String> a = buildA() ; final LinkedList&...

2019-07-12 16:32:44 117

原创 android viewgroup 事件分发

2019-07-11 16:28:24 148

原创 Gson json 简化 优化

今天代码review的时候 发现同事解析一段json 做法很麻烦 所以我就帮他重构了一下{ "total": 51, "per_page": 15, "current_page": 1, "last_page": 4, "data": [{ "id": 00, "title": "地铁旁+精装全明办公间+中小企业拎包入住+虚拟办公", "image": "htt...

2019-07-08 17:50:35 608

原创 jwt android

<dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.8.1</version> </dependency>package ...

2019-07-08 15:19:34 243

原创 堆排序

把一个数组构建为大顶堆的过程根据完全二叉树的性质 计算出来某个节点父节点的index 左孩子的index右孩子的index/** * 堆排序 * */public class MyHeapSort extends App { /** * 把数组构建为大顶堆 */ private static void...

2019-07-04 17:04:55 84

原创 set 的 无序性 不重复性 (以hashset举例)

/** * * hashset的add方法 * */ public boolean add(E e) { return map.put(e, PRESENT)==null; } /** * * hashmap的put方法 * */ public V put(K ...

2019-06-27 17:33:18 575

原创 hashmap put 方法 源码分析

public V put(K key, V value) { //如果 HashMapEntry 数组为空 进行初始化操作 if (table == EMPTY_TABLE) { inflateTable(threshold); } //如果key==null 执行nullkey 操作 ...

2019-06-27 16:57:28 206

原创 RecycleView 最小实现

package com.example.myapplication;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.R...

2019-06-26 11:49:02 127

原创 21. 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4网上各位大神的做法 全是递归 可是我想不到啊。。。 就自己想了一个方法 public ListNode mergeTwoLists(Lis...

2019-06-12 15:44:53 113

原创 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aac...

2019-06-11 14:14:38 1495

原创 括号匹配问题

public boolean isValid(String s) { HashMap<Character,Character> map = new HashMap<>() ; map.put(')','('); map.put('}','{'); map.put(']','['); Stack...

2019-06-11 11:16:40 104

原创 链表反转

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL数据初始化: public class ListNode { int val; ListNode next; ListNode(int x) { val...

2019-06-11 10:24:34 424

原创 对字符串数组 进行排序

String[] x = {"nba","abc","cba","zz","qq","haha"}; //自己写的排序 // 排序的方法 直接用的冒泡排序 以前都是比较数字 直接用 > < = 就好了 但是 字符串的比较怎么办? 用String类提供的compareTo 方法就可以了 for(in...

2019-06-10 11:38:51 6910 1

原创 实现字符串 trim 功能

String x = " dfdfdf " ; char[] array = x.toCharArray(); int begin = 0; for(int i= 0;i<array.length;i++){ if(' '==array[i]){ continue;...

2019-06-10 09:50:13 147

原创 利用接口 解决开发中的小问题

需求如图 其实直接传递个字符串就可以了Intent intent=new Intent(context,B.class);intent.putExtra("Stringkey","String value is id");startActivity(intent);//页面接收String id = getIntent().getStringExtra("Stri...

2019-06-05 14:44:36 126

原创 死锁示例

拥有死锁的程序 并不是每一次都互相锁住 也许能正常运行 也许被永远锁住 @Test public void test() throws InterruptedException { //那个被多个线程来共同操作的对象 这次试验使用静态方法了 。。。 所以就不用new 出来对象了。。。 ThisLock thisLock =new T...

2019-04-12 13:20:54 163

原创 静态同步方法的锁 是.class对象

@Test public void test() throws InterruptedException { //那个被多个线程来共同操作的对象 这次试验使用静态方法了 。。。 所以就不用new 出来对象了。。。 //Class thisLock = ThisLock.class; //线程 t1 Threa...

2019-04-12 10:53:36 1640

原创 java 同步方法的锁 是this

多说一句 为什么没有新建一个Runnable对象 ? 因为我们不是研究同一个对象的数据被多个线程共享的问题。我们只是为了研究作为一个同步方法被多个线程竞争调用的同时,这个类里面别的同步方法是阻塞还是运行状态,所以只是新建了一个ThisLock 对象。 @Test public void test() throws InterruptedException { ...

2019-04-12 10:20:26 1492

原创 对一个有序数组 进行逆序操作

觉得还是首尾位置的值调换比较简单直接吧 private void reverse(int[] x,int low,int high){ int nums = (high-low) >> 1; for(int i=0;i<nums;i++){ int tem = x[i]; x[i] =...

2019-04-04 16:00:49 410

原创 两数之和

给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]给定一个整...

2019-04-04 10:47:59 111

原创 子串能表示从 1 到 N 数字的二进制串

给定一个二进制字符串S(一个仅由若干'0' 和 '1' 构成的字符串)和一个正整数N,如果对于从1到N的每个整数X,其二进制表示都是S的子串,就返回true,否则返回false。示例 1:输入:S = "0110", N = 3输出:true示例 2:输入:S = "0110", N = 4输出:false public b...

2019-04-04 10:29:23 263

原创 选择排序

首先在排序序列中假设第一个元素是最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,如果碰到更小的元素,记录下index,本次循环过后 把第一个元素和我们记录到的最小元素做一下对比 ,如果不是同一个元素 ,交换位置 ,放到已排序序列的开头。以此类推,直到所有元素均排序完毕。 private void selectSort(int[] x){...

2019-04-02 15:07:52 120

原创 冒泡排序

冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。晒上我的实现: private void popSort(int[] x...

2019-04-02 14:55:26 115

原创 快速排序

网上各种大神的快速排序思想其实都一样的 但是实现方法的代码各有各的特点 有的人竟然能一行代码做了n件事情 跟别人的思路完全吻合其实也有难度 所以我把我的快速排序实现方法贴出来 public void quicksort(int[] x,int low,int high){ if(low>=high){ return; ...

2019-04-01 14:05:01 88

空空如也

空空如也

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

TA关注的人

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