Source Code : Functions for Statistics

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

Functions for Statistics

    

/*
 * Copyright WizTools.org
 * Licensed under the Apache License, Version 2.0:
 * http://www.apache.org/licenses/LICENSE-2.0
 */
//package org.wiztools.commons;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 *
 * @author subWiz
 */
public final class Statistics {
    private Statistics() {}

    private static final String LOG_ARRAY_LENGTH_0 = "Length of array cannot be 0!";

    /* MEAN */

    public static int mean(final int[] list) throws IllegalArgumentException {
        if(list.length == 0) {
            throw new IllegalArgumentException(LOG_ARRAY_LENGTH_0);
        }
        int sum = 0;
        for(int n: list) {
            sum += n;
        }
        return sum / list.length;
    }

    public static long mean(final long[] list) throws IllegalArgumentException {
        if(list.length == 0) {
            throw new IllegalArgumentException(LOG_ARRAY_LENGTH_0);
        }
        long sum = 0;
        for(long n: list) {
            sum += n;
        }
        return sum / list.length;
    }

    public static float mean(final float[] list) throws IllegalArgumentException {
        if(list.length == 0) {
            throw new IllegalArgumentException(LOG_ARRAY_LENGTH_0);
        }
        float sum = 0;
        for(float n: list) {
            sum += n;
        }
        return sum / list.length;
    }

    public static double mean(final double[] list) throws IllegalArgumentException {
        if(list.length == 0) {
            throw new IllegalArgumentException(LOG_ARRAY_LENGTH_0);
        }
        float sum = 0;
        for(double n: list) {
            sum += n;
        }
        return sum / list.length;
    }

    /* MEDIAN */

    public static int median(final int[] list) throws IllegalArgumentException {
        if(list.length < 1) {
            throw new IllegalArgumentException();
        }
        Arrays.sort(list);
        if((list.length % 2) == 0) { // is even
            final int idx = list.length / 2;
            return (list[idx] + list[idx-1]) / 2;
        }
        else { // is odd
            final int idx = list.length / 2;
            return list[idx];
        }
    }

    /* MODE */

    private static class ModeCompute <T extends Number> {
        private Map<T, Integer> map = new HashMap<T, Integer>();
        private int maxFrequency = 0;

        void add(T t) {
            final int count = (map.get(t) == null)? 1: (map.get(t) + 1);

            // Update map:
            map.put(t, count);

            // Update maxFrequency:
            if(count > maxFrequency)
                maxFrequency = count;
        }

        List<T> getMode() {
            List<T> out = new ArrayList<T>();

            for(Map.Entry<T, Integer> entry: map.entrySet()) {
                if(entry.getValue() == maxFrequency) {
                    out.add(entry.getKey());
                }
            }

            return out;
        }
    }

    public static int[] mode(final int[] list) throws IllegalArgumentException {
        if(list.length == 0) {
            throw new IllegalArgumentException(LOG_ARRAY_LENGTH_0);
        }

        final ModeCompute<Integer> modeComp = new ModeCompute<Integer>();
        for(int i=0; i<list.length; i++) {
            modeComp.add(list[i]);
        }

        final List<Integer> l = modeComp.getMode();

        // Prepare the output array:
        final int[] out = new int[l.size()];
        Iterator<Integer> itr = l.iterator();
        for(int i=0; i<out.length; i++) {
            out[i] = itr.next();
        }

        return out;
    }
}

   
    
    
    
  

Thank with us