java数据结构
文章平均质量分 63
飞人小天使
希望大家相互交流
展开
-
我对对java集合类的理解
数据结构 数组结构 链表结构 二分数 哈希表1.List接口 接口的方法有增删改查Set接口Set中的方法就是增删改查 不能加入重复元素因为调用了equals方法HashSet数据结构基于哈希表作用可以快速查找,存入的元素必须定义hashcode方法LinkedHashSet具有HashSet的查询速度,且内部使用链表维护了元素插入的顺序TreeSet数据结构原创 2016-09-25 08:33:03 · 1302 阅读 · 0 评论 -
并发集合在分析之CurrentHashMap之从应用去分析,分段加锁应用
实际应用: Java代码 ConcurrentMap map = new ConcurrentHashMap(); String oldValue = map.put("zhxing", "value"); String oldValue1 = map.put("zhxing", "value1"); String oldValue2 = map.putIfA转载 2016-11-30 12:01:50 · 986 阅读 · 0 评论 -
HashMap HashSet源码分析
在我之前的文章已经有了对HashMap结构大概的原理说明,现在来分析HashMap源码概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键,但是他不保证映射的顺序,特别是不保证该顺序恒久不变。HashMap数据结构,在java程序的编程中有两个基本的数据结构,一个是数组一个是模拟指针,实际HashMap是链表加数组的实原创 2016-11-20 17:50:28 · 278 阅读 · 0 评论 -
n个学生站成一排 网易面试题之每个学生有一个能力值 牛牛想从n个学生中选出k名学生 要求相邻学生编号不超过d使得这k个学生乘积最大
package wangyi;/** * 需求分析 * n个学生站成一排 每个学生有一个能力值 牛牛想从n个学生中选出k名学生 要求相邻学生编号不超过d使得这k个学生乘积最大 */import java.util.*;public class Demo{ public static void main(String[] args){ //键盘输入原创 2016-12-07 11:57:12 · 3912 阅读 · 1 评论 -
网易面试题之给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢, * 和一般的游戏所不同的是,他每一步
package wangyi;/** * Created by Administrator on 2016/12/7. * 给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢, * 和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍原创 2016-12-07 11:58:04 · 3116 阅读 · 0 评论 -
网易面试题之 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
package wangyi;/** * Created by Administrator on 2016/12/7. * 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。 */import java.util.HashSet;import java.util.Scanner;public class Test1 { pub原创 2016-12-07 11:59:00 · 2224 阅读 · 0 评论 -
网易面试题之 航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程, * 科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2
航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程, * 科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2 * 程度的损耗,如果飞船的总损耗超过了它的耐久度,飞行器就会爆炸坠毁。问一艘耐久度为 h 的飞行器, * 假设在飞行过程中不产生损耗,那么为了保证其可以安全的到达目的地, * 只考虑整数解,至多发射过程中可以承受多少程度的损耗?原创 2016-12-07 12:00:37 · 1012 阅读 · 0 评论 -
网易面试题之 牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t, * 根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序
牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t, * 根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列。注意 * ,子序列不要求在原字符串中是连续的,例如串 abc,它的子序列就有 {空串, a, b, c, ab, ac, bc, abc} 8 种。原创 2016-12-07 12:01:19 · 1427 阅读 · 0 评论 -
网易面试题之 牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因, * 其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,
牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因, * 其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k, * 顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。 */原创 2016-12-07 12:02:07 · 4850 阅读 · 0 评论 -
递归和非递归对二叉树进行前序中序后序遍历
package problems_2016_09_07;import java.util.Stack;public class Problem_01_PreInPosTraversal { public static class Node { public int value; public Node left; public Node right; public N原创 2017-04-06 12:16:27 · 310 阅读 · 0 评论 -
时间复杂度O(n)空间复杂度O(1)打印二叉树前中后序
利用最后节点大两个空指针处理,节省空间,时间复杂度不变public class Problem_05_MorrisTraversal { public static class Node { public int value; Node left; Node right; public Node(int data) { this.value = data; }原创 2017-04-06 12:18:52 · 769 阅读 · 0 评论 -
java并发集合源码分析之currentHashMap分段加锁分析
ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get转载 2016-11-30 11:57:17 · 6426 阅读 · 0 评论 -
CopyOnWriteArrayList 并发集合源码分析
在CopyOnWriteArrayList里处理写操作(包括add、remove、set等)是先将原始的数据通过JDK1.6的Arrays.copyof()来生成一份新的数组然后在新的数据对象上进行写,写完后再将原来的引用指向到当前这个数据对象,这样保证了每次写都是在新的对象上(因为要保证写的一致性,这里要对各种写操作要加一把锁,JDK1.6在这里用了重入锁),然后读的时候就是在引原创 2016-11-30 11:37:49 · 1215 阅读 · 0 评论 -
中缀表达式转后缀表达式java精确实现
package cn.itcast.StackAndQuen;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * Created by likailong on 2016/10/16. * 中缀表达式到后缀表达式 */public class MathCaculate {原创 2016-10-22 10:42:45 · 426 阅读 · 0 评论 -
java语言实现红黑树 仅仅实现了插入算法
package cn.itcast.shujujiegou.tree;/** * Created by likailong on 2016/10/13. */public class RedBlackTree> { private RedBlackNode header; private RedBlackNode nullNode; private static原创 2016-10-13 18:01:49 · 347 阅读 · 0 评论 -
自定义算法实现随机数的生成
package cn.itcast.shujujiegou.Random1;/** * Created by likailong on 2016/10/13. */public class Random1 { private static final int A=48271; private static final int M=2147483647; priva原创 2016-10-13 18:03:43 · 1408 阅读 · 0 评论 -
java集合数据结构实现
自定义集合类和java数据结构底层的实现 对ArrayList的实现,实际就是动态数组 代码分析package cn.itcast.shujujiegou;package cn.itcast.shujujiegou;import java.util.Iterator;/** * Created by likailong on 2016/9/27. */publi原创 2016-09-29 20:50:36 · 414 阅读 · 0 评论 -
对java数据结构的实现
对LinkedList的实现package cn.itcast.shujujiegou;import java.util.Iterator;import java.util.NoSuchElementException;/** * Created by likailong on 2016/9/27. */public class MyLinkedList implements原创 2016-09-29 21:00:32 · 345 阅读 · 0 评论 -
对二叉树和平衡二叉树实现
二叉树实现和平衡二叉树实现 package cn.itcast.shujujiegou.tree;/** * Created by likailong on 2016/9/28. * 二叉查找树要求所有的项都可以排序故实现某一个接口 * 数不能太深 */public class BinarySearchTree>{ private static class Bina原创 2016-09-29 21:01:59 · 354 阅读 · 0 评论 -
算法效率测试
对下面代码进行测试 测试数组和链表的数据删除出算法测试问题来源 package cn.itcast.shujujiegou;import java.util.Iterator;/** * Created by likailong on 2016/9/27. * 测试代码有效性 */public class TimeTest { public static v原创 2016-09-29 21:25:44 · 666 阅读 · 0 评论 -
对二叉树和平衡树测试
package cn.itcast.shujujiegou.tree;import java.util.Random;/** * Created by likailong on 2016/9/28. * 自定义类必须实现Comparable */public class TreeTest { public static void main(String [] args){原创 2016-09-29 21:37:32 · 484 阅读 · 0 评论 -
java实现中缀表达式转后缀表达式并且计算
自己写一个栈 用数组实现package cn.itcast.StackAndQuen;import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * Created by likailong on 2016/10/16. * 中缀表达式到后缀表达式 */public class Ma原创 2016-10-17 17:04:18 · 3531 阅读 · 1 评论 -
最长递增子序列,时间复杂度(O(nlogn))
package com.kailong.datastures;import java.util.Arrays;/** * Created by Administrator on 2017/4/17. * 最长递增子序列 */public class FindMaxIntLong { public static int[] getList1(int []arr){原创 2017-04-17 12:50:29 · 1253 阅读 · 0 评论