Monthly Archives: Декабрь 2013

Получение MD5 хэша на Java

Первый вариант (которым я пользуюсь):
public static final String md5(final String text){
	try{
		MessageDigest md = MessageDigest.getInstance("MD5");
		md.update(text.getBytes());
		String hash = new BigInteger(1, md.digest()).toString(16);
		while(hash.length() 

Второй вариант:
public static final String md5(final String s) {
    try {
        // Create MD5 Hash
        MessageDigest digest = java.security.MessageDigest
                .getInstance("MD5");
        digest.update(s.getBytes());
        byte messageDigest[] = digest.digest();

        // Create Hex String
        StringBuffer hexString = new StringBuffer();
        for (int i = 0; i             

Сортировка слиянием на Java

Реализация сортировки слиянием на Java:
//рекурсивная функция сортировки частей массива
public static int[] sort(int[] arr){
	if(arr.length 
Пример использования:
int[] arr ={2,1,0,6,1,9,8,7};//тестовый массив
System.out.println(Arrays.toString(arr));//вывод на экран исходного массива
int[] sortArr = sort(arr);//сортировка
System.out.println(Arrays.toString(sortArr));//вывод на экран отсортированного массива

Простые числа (Решето Эратосфена)

Нахождение простых чисел методом "Решето Эратосфена" Реализация на Java:
public class Primes {

	private boolean primes[];

	public Primes(int number){
		primes = new boolean[number+1];		
		Arrays.fill(primes, true);
		primes[0] = false;
		primes[1] = false;
		for(int i = 2;i*i 

Применение:
int N = 100;
Primes primes = new Primes(N);
for(int i=0;i 

ArrayUtils — методы по работе с массивами

Методы по работе с массивами
public class ArrayUtils {

	//сумма элементов int массива
	public static int sum(int[] arr){
		int sum = 0;
		for(int i : arr) sum += i;
		return sum;
	}

	//сумма элементов long массива	
	public static long sum(long[] arr){
		long sum = 0;
		for(long l : arr) sum += l;
		return sum;
	}
	
	//сумма элементов double массива	
	public static double sum(double[] arr){
		double sum = 0;
		for(double d : arr) sum += d;
		return sum;
	}

	//максимальный элемент в int массива
	public static int max(int[] arr){
		int max = Integer.MIN_VALUE;
		for(int i : arr) if(i > max) max = i;
		return max;
	}
	
	//максимальный элемент в long массиве
	public static long max(long[] arr){
		long max = Long.MIN_VALUE;
		for(long l : arr) if(l > max) max = l;
		return max;
	}
	
	//максимальный элемент в double массиве
	public static double max(double[] arr){
		double max = Double.MIN_VALUE;
		for(double d : arr) if(d > max) max = d;
		return max;
	}

	//минимальный элемент в int массиве
	public static int min(int[] arr){
		int min = Integer.MAX_VALUE;
		for(int i : arr) if(i  0){
			p = 0;
			for(int i = 1; i  arr[p]) 
					p = i;
		}
		return p;
	}
	
	//индекс максимального элемента в long массиве
	public static int maxIndex(long[] arr){
		int p = -1;
		int len = arr.length;
		if(len > 0){
			p = 0;
			for(int i = 1; i  arr[p])
					p = i;
		}
		return p;
	}
	
	
	//индекс максимального элемента в double массиве
	public static int maxIndex(double[] arr){
		int p = -1;
		int len = arr.length;
		if(len > 0){
			p = 0;
			for(int i = 1; i  arr[p])
					p = i;
		}
		return p;
	}

	//индекс минимального элемента в int массиве
	public static int minIndex(int[] arr){
		int p = -1;
		int len = arr.length;
		if(len > 0){
			p = 0;
			for(int i = 1; i  0){
			p = 0;
			for(int i = 1; i  0){
			p = 0;
			for(int i = 1; i