`
i2534
  • 浏览: 182815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一些自用的便捷工具,不定期更新

    博客分类:
  • util
阅读更多

自己项目里用到的工具类,不定时更新

public final class SpeedyKit {

	private SpeedyKit() {
		throw new AssertionError();
	}

	/**
	 * 获取a(包含)与b(包含)之间的所有的自然数,步长为1.本方法会比较a和b的大小,然后升序排列
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public static int[] stepDigits(int a, int b) {
		int min = Math.min(a, b);
		int max = Math.max(a, b);
		int[] array = new int[max - min + 1];
		for (int i = 0; min <= max; min++) {
			array[i++] = min;
		}
		return array;
	}

	/**
	 * 返回数组的最后一个元素
	 * 
	 * @param array
	 * @return
	 * @throws NullPointerException
	 *             如果数组为null
	 */
	public static int lastOfArray(int[] array) {
		if (array == null) {
			throw new NullPointerException();
		}
		return array[array.length - 1];
	}

	/**
	 * 返回数组的最后一个元素
	 * 
	 * @param <T>
	 * @param array
	 * @return
	 * @throws NullPointerException
	 *             如果数组为null
	 */
	public static <T> T lastOfArray(T[] array) {
		if (array == null) {
			throw new NullPointerException();
		}
		return array[array.length - 1];
	}

	/**
	 * 反转数组
	 * 
	 * @param array 自然排序过的数组
	 * @return
	 * @throws NullPointerException
	 *             如果数组为null
	 */
	public static int[] reverseArray(int[] array) {
		if (array == null) {
			throw new NullPointerException();
		}
		int[] newArray = new int[array.length];
		for (int i = 0, j = array.length - 1; j >= 0; j--) {
			newArray[i++] = array[j];
		}
		return newArray;
	}

	/**
	 * 反转数组
	 * 
	 * @param <T>
	 * @param array 自然排序过的数组	 
         * @return
	 * @throws NullPointerException
	 *             如果数组为null
	 */
	public static <T> T[] reverseArray(T[] array) {
		if (array == null) {
			throw new NullPointerException();
		}
		T[] newArray = Arrays.copyOf(array, array.length);
		Arrays.sort(newArray, Collections.reverseOrder());
		return newArray;
	}

	/**
	 * 计算字节的md5
	 * @param array
	 * @return
	 */
	public static String md5(byte[] array) {
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			md.update(array);
			byte[] digest = md.digest();
			char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
					'9', 'a', 'b', 'c', 'd', 'e', 'f' };
			// 用字节表示就是 16 个字节
			char[] result = new char[16 * 2]; // 每个字节用 16
			// 进制表示的话,使用两个字符,
			// 所以表示成 16 进制需要 32 个字符
			int j = 0; // 表示转换结果中对应的字符位置
			for (int i = 0; i < 16; i++) { // 从第一个字节开始,对 MD5
				// 的每一个字节
				// 转换成 16 进制字符的转换
				byte b = digest[i]; // 取第 i 个字节
				result[j++] = hexDigits[b >>> 4 & 0xf];
				// 取字节中高4位的数字转换,
				// >>> 为逻辑右移,将符号位一起右移
				result[j++] = hexDigits[b & 0xf];
				// 取字节中低 4位的数字转换
			}
			return new String(result);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return null;
	}

 public static void main(String[] args) {
		Integer[] t = new Integer[10];
		// int[] t = new int[10];
		for (int i = 0; i < 10; i++) {
			t[i] = i;
		}
		t = SpeedyKit.reverseArray(t);
		System.out.println(SpeedyKit.lastOfArray(t));
	}
}
分享到:
评论

相关推荐

    SComps:自用react组件库,不定期更新

    【SComps: 自用React组件库,不定期更新】是一个个人维护的React组件集合,旨在为开发者提供一套实用、可复用的UI组件,以提高开发效率和代码质量。这个组件库是用TypeScript编写的,充分利用了TypeScript的静态类型...

    外壳扩展工具包(ShellKit) 珍藏自用版

    外壳扩展工具包(ShellKit)是一款专为Windows操作系统设计的实用工具集,它极大地丰富了用户在文件资源管理器中的右键菜单,提供了更多便捷的操作选项。通过将各种实用功能集成到右键菜单,ShellKit使得文件和文件夹...

    自用安卓sdk包

    - **更新维护**:定期更新SDK及其工具至最新版本,以便获取最新的修复和改进。 通过上述介绍,我们可以看出Android SDK是开发Android应用不可或缺的一部分。合理利用这些工具和资源,可以极大地提升开发效率和应用...

    navicat15自用安装包.rar

    它以其直观的界面、丰富的功能和出色的性能,使得数据库的管理和开发变得更加高效和便捷。本文将深入探讨Navicat15的主要特性、安装过程以及如何利用其进行MySQL数据库的操作。 一、Navicat15的主要特性 1. 多种...

    女生自用剑网三机器人-mini_jx3_bot.zip

    《女生自用剑网三机器人-mini_jx3_bot》是一款专为女性玩家设计的剑网三游戏辅助程序,旨在提供便捷的游戏体验。"mini_jx3_bot"这个名字简洁明了,直指其作为迷你版剑网三自动化工具的核心功能。在深入探讨这款...

    WinRAR自用版.rar

    同时,定期更新软件至最新版本,可获取最新的功能改进和安全补丁。 总结来说,WinRAR作为一款强大的压缩工具,因其高效的压缩技术、强大的安全特性以及便捷的操作方式,深受广大用户的喜爱。无论是在个人电脑还是...

    foxit reader 迷你版 留着自用

    11. **更新与支持**:福昕公司定期更新软件,修复已知问题,提升用户体验,并提供及时的技术支持和服务。 总结,福昕阅读器迷你版以其精简的功能集和高效的性能,为用户提供了一种轻量级的PDF阅读解决方案,尤其...

    usbip.rar自用带win10自动添加打印机

    描述中的 "自用带win10自动添加打印机" 暗示了这个压缩包可能包含了一些定制化的脚本或配置,这些内容能够帮助Windows 10用户无需手动操作就能识别并安装远程Linux服务器上的USB打印机。这通常涉及到USBIP客户端的...

    自用自写的linux帮助文档

    本文档"自用自写的linux帮助文档"提供了一种便捷的方式,帮助用户快速查询和学习Linux命令。 首先,描述中提到的“将这个目录加到环境变量里面”,这是指将该文档所在的路径添加到用户的PATH环境变量中。PATH环境...

    毕设资料,自用备份资料

    "毕设资料,自用备份资料"这个标题暗示了备份是针对个人毕业设计项目的重要资料,目的是确保这些资料的安全性,避免因意外情况如硬件故障、病毒感染或人为误操作导致的数据丢失。 【备份类型】 1. 完全备份:这种...

    自动校时(绿色),本人自用的一款绿色小软件.

    本压缩包提供的“自动校时”绿色小软件是个人自用的工具,用于确保计算机系统的时间准确无误。 自动校时软件的主要作用是定期或者根据设定的条件,自动从权威的时间服务器获取准确的时间,并调整本地计算机系统的...

    图片:自用图床

    标题“图片:自用图床”表明这是一个存储个人或项目使用的图像资源的集合,通常用于在网站、博客、社交媒体或其他在线平台上传和分享图片。在IT行业中,图床指的是一个集中存储图片的地方,方便在需要时快速引用。...

    Redis-x64-3.2.100,window下可直接执行的redis,自用留存

    - Windows版Redis不支持哨兵(Sentinel)系统,因此高可用性部署可能需要借助其他工具或服务。 7. **性能调优**: - 调整内存大小限制、最大客户端连接数等配置。 - 使用虚拟内存(vm)或AOF/RDB策略来平衡性能...

    Toad11绿色版

    Toad是一款广受欢迎的数据库管理工具,特别是在Oracle数据库管理领域,它被许多...总的来说,Toad11绿色版是一个便捷的数据库管理工具,尤其适合需要在多台电脑上快速工作的用户。但使用时需谨慎,确保安全性和稳定性。

    redsn0w_win_0.9.10b6

    6. **后续维护**:越狱后的设备需要定期更新Cydia中的补丁和插件,以保持系统的稳定性和安全性。此外,当Apple发布新的iOS固件时,用户需要考虑是否升级,因为新的固件可能会封堵现有的越狱漏洞。 7. **法律问题**...

    国际项目管理公路运输货代管理知识实训.ppt

    1. 公共运输业:面向全社会提供定时定点的运输服务,包括定期定线、定线不定期和定区不定期三种模式。 2. 契约运输业:与特定客户签订合同,提供定制化的运输服务。 3. 自用运输业:企业自有的运输车队,主要用于...

    [PERSONAL USE] ISPRO6

    7. **更新与维护**:定期检查软件更新,保持安装工具的最新状态,以获取新的功能和修复已知问题。 总的来说,ISPRO6作为一款安装制作工具,其精简版为个人用户提供了一种便捷的打包解决方案,尽管它可能不适合所有...

    altium designer好用的封装库

    因此,定期更新和检查封装库,确保其中的封装与最新的元件规格相符,是每个电子设计师都应该养成的良好习惯。 总的来说,这个“altium designer好用的封装库”为用户提供了宝贵的资源,不仅节省了寻找和创建封装的...

    mypassword.zip

    【描述】中的关键信息表明,这个小程序并未追求高性能,而是作为作者的个人项目,可能会根据时间安排进行不定期的更新。这意味着源代码可能不那么完善,但足以体现云开发的基本应用和小程序的基本架构。"没空就凑合...

    blog_source:自用 hexo 备份,win10 系统,主题 next

    Hexo 是一个基于 Node.js 的静态站点生成器,它允许用户快速、便捷地创建静态博客。这个名为 "blog_source" 的压缩包文件包含了作者自用的 Hexo 博客源码备份,适用于 Windows 10 操作系统,并采用了 Next 主题。...

Global site tag (gtag.js) - Google Analytics