Java学习工具类
来源:互联网 发布:网络教育英语统考时间 编辑:程序博客网 时间:2024/05/22 09:06
整理如下工具类
import java.awt.Color;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.OutputStream;import java.util.HashMap;/** * 工具类 * @author legendary * */public final class MyUtil { private MyUtil(){ throw new AssertionError(); } /** * 读取文件 * @return 键值Map */ public static HashMap<String, Object> readFile(){ System.out.println("读成功"); ObjectInputStream in = null; HashMap<String, Object> all = null; try { in = new ObjectInputStream(new FileInputStream("file.data")); all = (HashMap<String, Object>) in.readObject(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if (in != null) { try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return all; } /** * 写文件 * @param map 写出键值对 * @throws ClassNotFoundException 可能存在异常 */ public static void writeFile(HashMap<String, Object> map) throws ClassNotFoundException{ ObjectOutputStream out = null; try { out = new ObjectOutputStream(new FileOutputStream("file.data")); out.writeObject(map); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ if (out != null) { try { out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } /** * 短除法求最大公约数 * @param x 输入的整数 x * @param y 输入的整数 y * @return 最大公约数 */ public static int gcd(int x, int y){ if (x > y) { return gcd(y,x); } else if (y % x != 0) { return gcd(y % x , x); } else { return x; } } /** * 求整数 min和 max范围内的一个随机整数 * @param min 最小范围 * @param max 最大范围 * @return 随机值 */ public static int random(int min ,int max){ return (int) (Math.random()*(max - min +1) + min); } /** * 产生一个随机颜色 * @return 颜色 */ public static Color color(){ int red = (int) (Math.random()*MyUtil.random(0, 250)); int green = (int) (Math.random()*MyUtil.random(0, 250)); int blue = (int) (Math.random()*MyUtil.random(0, 250)); return new Color(red, green, blue); } /** * 计算阶乘 n ! = n * (n-1) * (n - 2)……*2 *1 * @param n * @return * @throws Exception */ public static double factorial(int n) throws TooSmallException,TooBigException{ if (n < 0 ) { throw new TooSmallException("参数值不能小于0"); }else if (n >170) { throw new TooBigException("参数值不能大于170"); } double defult = 1; for (int i = 1; i < n; i++) { defult *= i; } return defult; } /** * 拷贝文件 * @param sourceFile 源文件地址及名字 * @param targetFile 目标地址及名字 * @throws IOException 输入输出异常 */ public static void fileCopy(String sourceFile, String targetFile) throws IOException{ InputStream in = null; OutputStream out = null; try { in = new FileInputStream(sourceFile); int indexofSlash = targetFile.lastIndexOf("/"); if (indexofSlash > 1) { File f = new File(targetFile.substring(0, indexofSlash)); if (!f.exists()) { f.mkdirs(); } } out = new FileOutputStream(targetFile); byte[] buffer = new byte[1024]; int b = in.read(buffer); while (b != -1) { //文件结束符号 out.write(buffer, 0, b); b = in.read(buffer); } } catch (IOException e) { throw e; } finally{ if (in != null) { in.close(); } if (out != null) { out.close(); } } } /** * 声明两个新的异常 * @author legendary * 太小、太大 */ private static class TooSmallException extends Exception{ public TooSmallException(String msg){ super(msg); } } private static class TooBigException extends Exception{ public TooBigException(String msg){ super(msg); } }}
/** * 二分查找法 * @param array 有序的数组 * @param key 待找的元素 * @return 找到就返回数组下标,没有就返回-1 */ public static <T extends Comparable<T>> int binarySearch(T[] array, T key){ int min = 0; int max = array.length -1; while (min <=max) { int mid = (min + max) >>> 1; if (array[mid].compareTo(key) > 0) { max = mid - 1; } else if (array[mid].compareTo(key) < 0) { min = mid + 1; } else { return mid; } } return -1; } /** * 鸡尾酒排序 * @param array 等待排序的数组 */ public static <T extends Comparable<T>> void sort(T[] array){ boolean swapped = true; for (int i = 1;swapped && i <= array.length -1;) { swapped = false; switch (i%2) { case 0: for (int j = 0; j < array.length - i; j++) { if (array[j].compareTo(array[j + 1]) > 0) { T temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; swapped = true; } } break; case 1: for (int j = array.length -1; j >= i; j--) { if (array[j-1].compareTo(array[j]) > 0) { T temp = array[j - 1]; array[j-1] = array[j]; array[j] = temp; swapped = true; i++; } } break; } } } /** * 冒泡排序 * @param array 暂时无法排序的数组 * @param comp 定义零时排序规则 */ public static <T> void sort(T[] array,Comparator<T> comp){ boolean swapped = true; for (int i = 1;swapped && i <= array.length -1; i++) { swapped = false; for (int j = 0; j < array.length - i; j++) { if (comp.compare(array[j],array[j+1]) > 0) { T temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; swapped = true; } } } }
0 0
- Java学习工具类
- Java工具类学习笔记
- Java工具类学习笔记
- Java工具类学习笔记
- Java工具类学习笔记
- [Java学习] Java文件操作工具类
- 同步工具类之Java学习总结
- Java学习笔记之数组工具类
- JAVA学习--Collections集合工具类…
- java学习之集合框架工具类
- java学习之Arrays工具类
- java学习之Collections工具类
- JAVA基础学习(十八)--常用 工具类
- java之Collections工具类学习
- Java学习笔记--Collections工具类
- Java学习篇之JDBCUtils工具类
- 学习笔记1. Java工具类
- Java学习笔记之Arrays工具类
- 微信开发学习笔记之五(CI框架 常用封装)
- 使用java检测网络连接状况
- Java foreach用法
- Hbase shell 常用命令
- 不要在构造函数里往外传this参数
- Java学习工具类
- 关于UITweener老是卡帧的问题
- LInux 下安装Myeclipse2014
- 坚持积累,坚持分享
- 第十二周 阅读项目 (4)虚基类多重继承数据理解
- hdu 3658(矩阵快速幂)
- CFileDialog的用法简介
- 算法实现(7)合并排序
- C语言的代码内存布局详解