- 博客(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
140
原创 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
655
原创 jwt android
<dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.8.1</version> </dependency>package ...
2019-07-08 15:19:34
283
原创 堆排序
把一个数组构建为大顶堆的过程根据完全二叉树的性质 计算出来某个节点父节点的index 左孩子的index右孩子的index/** * 堆排序 * */public class MyHeapSort extends App { /** * 把数组构建为大顶堆 */ private static void...
2019-07-04 17:04:55
107
原创 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
607
原创 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
234
原创 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
145
原创 21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4网上各位大神的做法 全是递归 可是我想不到啊。。。 就自己想了一个方法 public ListNode mergeTwoLists(Lis...
2019-06-12 15:44:53
135
原创 删除字符串中的所有相邻重复项
给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aac...
2019-06-11 14:14:38
1544
原创 括号匹配问题
public boolean isValid(String s) { HashMap<Character,Character> map = new HashMap<>() ; map.put(')','('); map.put('}','{'); map.put(']','['); Stack...
2019-06-11 11:16:40
123
原创 链表反转
反转一个单链表。示例:输入: 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
466
原创 对字符串数组 进行排序
String[] x = {"nba","abc","cba","zz","qq","haha"}; //自己写的排序 // 排序的方法 直接用的冒泡排序 以前都是比较数字 直接用 > < = 就好了 但是 字符串的比较怎么办? 用String类提供的compareTo 方法就可以了 for(in...
2019-06-10 11:38:51
6999
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
175
原创 利用接口 解决开发中的小问题
需求如图 其实直接传递个字符串就可以了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
150
原创 死锁示例
拥有死锁的程序 并不是每一次都互相锁住 也许能正常运行 也许被永远锁住 @Test public void test() throws InterruptedException { //那个被多个线程来共同操作的对象 这次试验使用静态方法了 。。。 所以就不用new 出来对象了。。。 ThisLock thisLock =new T...
2019-04-12 13:20:54
189
原创 静态同步方法的锁 是.class对象
@Test public void test() throws InterruptedException { //那个被多个线程来共同操作的对象 这次试验使用静态方法了 。。。 所以就不用new 出来对象了。。。 //Class thisLock = ThisLock.class; //线程 t1 Threa...
2019-04-12 10:53:36
1678
原创 java 同步方法的锁 是this
多说一句 为什么没有新建一个Runnable对象 ? 因为我们不是研究同一个对象的数据被多个线程共享的问题。我们只是为了研究作为一个同步方法被多个线程竞争调用的同时,这个类里面别的同步方法是阻塞还是运行状态,所以只是新建了一个ThisLock 对象。 @Test public void test() throws InterruptedException { ...
2019-04-12 10:20:26
1530
原创 对一个有序数组 进行逆序操作
觉得还是首尾位置的值调换比较简单直接吧 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
437
原创 两数之和
给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]给定一个整...
2019-04-04 10:47:59
135
原创 子串能表示从 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
286
原创 选择排序
首先在排序序列中假设第一个元素是最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,如果碰到更小的元素,记录下index,本次循环过后 把第一个元素和我们记录到的最小元素做一下对比 ,如果不是同一个元素 ,交换位置 ,放到已排序序列的开头。以此类推,直到所有元素均排序完毕。 private void selectSort(int[] x){...
2019-04-02 15:07:52
137
原创 冒泡排序
冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。晒上我的实现: private void popSort(int[] x...
2019-04-02 14:55:26
138
原创 快速排序
网上各种大神的快速排序思想其实都一样的 但是实现方法的代码各有各的特点 有的人竟然能一行代码做了n件事情 跟别人的思路完全吻合其实也有难度 所以我把我的快速排序实现方法贴出来 public void quicksort(int[] x,int low,int high){ if(low>=high){ return; ...
2019-04-01 14:05:01
107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人