- 浏览: 467219 次
- 性别:
- 来自: 杭州
最新评论
-
ty1972873004:
sunwang810812 写道我运行了这个例子,怎么结果是这 ...
Java并发编程: 使用Semaphore限制资源并发访问的线程数 -
lgh1992314:
simpleDean 写道请问,Logger.setLevel ...
Java内置Logger详解 -
sunwang810812:
我运行了这个例子,怎么结果是这样的:2号车泊车6号车泊车5号车 ...
Java并发编程: 使用Semaphore限制资源并发访问的线程数 -
jp260715007:
nanjiwubing123 写道参考你的用法,用如下方式实现 ...
面试题--三个线程循环打印ABC10次的几种解决方法 -
cb_0312:
SurnameDictionary文章我没看完,现在懂了
中文排序
文章列表
for (long l = 4946144450195624L; l > 0; l >>= 5)
System.out.print((char) (((l & 31 | 64) % 95) + 32));
这段代码有点诡异,输出的结果是hello world。
4946144450195624是64位长整形,它的二进制表达方式为
10001100100100111110111111110111101100011000010101000 程序用每5个位为一组去解析字符,在for循环中使用l >>5。
00100|01100|10010|011 ...
几个恰逢其时的动物的照片,完美!
- 博客分类:
- 生活点滴
几个恰逢其时的动物的照片,完美!
这鲨鱼是想和潜水员击掌吗?
小“色猴”,你看哪呢?
动物会祈祷吗? 看到下面的水獭,我想它们也会的。
这猫是要做广告代言吗?
奇怪的眼睛组合
更多文章 http://www.wangmengjun.com/showLifeDetail.do?lifeId=17
KindEditor代码高亮显示
- 博客分类:
- KindEditor
使用KindEditor将Java代码存入数据库,然后将数据库的数据取出来并显示在页面上的时候,发现Java代码没有高亮显示。
加入的有关KindEditor相关的CSS 和 JS有:
prettify.css
kindeditor.js
prettify.js
<link rel="stylesheet"
href="${pageContext.request.contextPath}/plugins/code/prettify.css" />
<script type="text/javascript&quo ...
本文用代码实现最短时间过桥,并且打印如下两个例子的最小过桥时间:
例子一:四人夜间过桥,他们只有一个手电筒一次只能两个人过桥,过桥时必须有手电筒,四人过桥时间为1分2分6分10分
例子二:小明过桥要一秒,小明的弟弟要三秒,小明的爸爸要六秒,小明的妈妈要八秒,小明的爷爷要十二秒。每次此桥最多可过两人,而过桥的速度,依过桥最慢者而定,可是灯在点燃后, 三十秒就会熄灭(过桥需要灯照明)。那么,请问小明一家,如何在三十秒内过桥?
代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.L ...
本文使用位掩码实现一个功能 ==》将数组分割成差值最小的子集
代码如下:
import java.util.Arrays;
public class MinimalDifference {
/**
* 将数组分割成差值最小的子集
*/
public void printTwoMinDiffGroups(int[] values) {
int length = values.length;
// 长度为length的二进制表示个数有1<<length个
int allMasks = 1 << length;
int ...
采用位掩码实现打印给定数组所有的非空子集。
分析:
首先来看一个例子,如果给定一个正整数N,如何输出由1到N组成的数组所有的非空子集呢?
如N=3, 那么1到3组成的数组为{1,2,3},数组长度为3,那么二进制表示有1<<3 = ...
题目:给定一个长度为N的数组,里面的每一个元素的值都在0到N-1之间,并且数组的元素是各不相同的。重新排列这个数组,使得array[i]的值变成array[array[i]], 但是只能使用0(1)的额外空间。
实现的代码如下:
import java.util.Arrays;
/**
* <pre>
* 题目要求:重新排列一个数组,使得array[i]的值变成array[array[i]],
* 只能使用0(1)的额外空间。
*
* 題目描述:给定一个长度为N的数组,里面的每一个元素的值都在0到N ...
要求:计算非负数二进制形式中1的个数.
本文采用两种方法来实现:
1) 通过Integer#toBinaryString方法获得二进制表达式, 替换掉0,那么剩余的都是1, 然后直接计算剩余字符串的长度来得到1的个数.
2) 采用位运算. 把一个整数减1,然后再与原来整数做与运算(&),会把该整数最右边一个1变成0,那么一个整数的二进制表示中有多少个1就可以进行多少次这样的操作.
具体的代码如下:
public class Example {
/**
* 通过Integer#toBinaryString方法获得二进制表达式, 替换掉0,剩余的都是1, 然后直接计算 ...
在Java中, break除了能够在switch中使用之外,还可以用于跳出循环。
比如,
例子一
public class BreakTest {
public static void main(String[] args) {
for (int i = 1; i <5; i++) {
for (int j = 1; j < 5; j++) {
if (i * j > 3) {
break; ...
本文将给出一个使用回溯法实现全排列的程序。
public class Permutations {
public void permute(String value, int startIndex, int endIndex) {
if (startIndex == endIndex) {
System.out.printf("%s\n", value);
} else {
for (int currIndex = startIndex; currIndex <= endIndex; currIndex++) {
...
本文实现一个Java小程序: 将所有数值为0的元素置于数组最后。
例如:
移动前: [1, 3, 0, 3, 1, 4, 5, 0, 3, 1, 0, 2, 3, 1, 9, 8, 2, 2, 5, 2]
移动后: [1, 3, 3, 1, 4, 5, 3, 1, 2, 3, 1, 9, 8, 2, 2, 5, 2, 0, 0, 0]
如果数组中没有需要移动的数,那么就保持不变。
思路:
1. 定义一个与给定数组长度等长的整形数组,同时定义一个名为nonZerosCount的整形变量,用于统计不为0的元素个数。
2. 循环遍历给定的整形数组,如果该元素不为0,则将该位置的元素数值放置 ...
本文将整理java.util.Arrays工具类比较常用的方法:
本文介绍的方法基于JDK 1.7 之上。
1. asList方法
@SafeVarargs
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
使用该方法可以返回一个固定大小的List,如:
List<String> stringList = Arrays.asList("Welcome", &quo ...
本文将记录实现“从一个整数数组中找出总和为S的所有子集”功能的两种方法。
1. 使用Stack来实现
2. 不借助Stack来实现。
使用Stack来实现
import java.util.Stack;
public class GetAllSubsetByStack {
/** Set a value for target sum */
public static final int TARGET_SUM = 15;
private Stack<Integer> stack = new Stack<Integer>();
/** ...
数字三角形问题:一个数字三角宝塔。设数字三角形中的数字为不超过100的正整数。现规定从最顶层走到最底层,每一步可沿左斜线向下或右斜线向下走。假设三角形行数小于等于100.编程求解从最顶层走到最底层的一条路径,使得沿着该路径所经过的数字的总和最大,输出最大值。
例如一个行数为5的三角形如下:
7
3 8
8 1 0
2 7 7 4
5 5 2 6 5
这一个问题,很容易想到用枚举的方法去解决,即列举出所有路径并记录每一条路径所经过的数字总和。然 ...