Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package src;
- import src.utils.IteratorK;
- import src.Statistics.*;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.*;
- public class Main {
- public static void main(String[] args) throws IOException {
- PrintWriter writer = new PrintWriter("newtest08_1000", "UTF-8");
- IteratorK iter = new IteratorK(100, 1);
- Statistic statistic = new Statistic();
- Integer[] index = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- List<Integer> ind = Arrays.asList(index);
- Map<Integer, List<Integer>> valueAmount = new HashMap<>();
- List<List<Integer>> amounts = new ArrayList<>();
- List<Integer> amount0 = new ArrayList<>();
- amounts.add(amount0);
- List<Integer> amount1 = new ArrayList<>();
- amounts.add(amount1);
- List<Integer> amount2 = new ArrayList<>();
- amounts.add(amount2);
- List<Integer> amount3 = new ArrayList<>();
- amounts.add(amount3);
- List<Integer> amount4 = new ArrayList<>();
- amounts.add(amount4);
- List<Integer> amount5 = new ArrayList<>();
- amounts.add(amount5);
- List<Integer> amount6 = new ArrayList<>();
- amounts.add(amount6);
- List<Integer> amount7 = new ArrayList<>();
- amounts.add(amount7);
- List<Integer> amount8 = new ArrayList<>();
- amounts.add(amount8);
- List<Integer> amount9 = new ArrayList<>();
- amounts.add(amount9);
- while (iter.hasNext()) {
- List<User> users = iter.next();
- writer.println("!!!! + user size " + users.size());
- // writer.println("Users list: " + users);
- Map<Double, List<Integer>> minCoefIndex = new HashMap<>();
- List<Integer> indexes = new ArrayList<>();
- Map<Double, List<Integer>> minCoefIndexRRR = getMinIndex(users, minCoefIndex, indexes);
- // }
- // writer.println("MAP: " + minCoefIndex);
- writer.println("MAP SIZE : " + minCoefIndexRRR.size());
- for (Map.Entry<Double, List<Integer>> entry : minCoefIndexRRR.entrySet()) {
- writer.println("key " + entry.getKey());
- if (entry.getKey() == 0.8) {
- List<Integer> list = entry.getValue();
- for (int i = 0 ; i<ind.size();i++) {
- Integer number = getNumberValueInList(i, list);
- amounts.get(i).add(number);
- valueAmount.put(i, amounts.get(i));
- writer.println("value : " + i + " number " + number);
- }
- }
- }
- writer.println("value amount " + valueAmount);
- }
- Map<Integer, Integer> valueSum = new HashMap<>();
- for (Map.Entry<Integer, List<Integer>> entry : valueAmount.entrySet()) {
- valueSum.put(entry.getKey(),sumListElem(entry.getValue()));
- }
- writer.println("FINAL MAP " + valueSum);
- writer.close();
- //
- // List<Integer> ind0 = minCoefIndex.get(0.25);
- // System.out.println("list index 0.0 " + ind0);
- // System.out.println(getNumberValueInList(7 , ind0));
- System.out.println("finish");
- }
- public static int sumListElem(List<Integer> list) {
- int sum = 0;
- for (Integer i : list)
- sum += i;
- return sum;
- }
- public static int getNumberValueInList(Integer value, List<Integer> list) {
- int i = 0;
- for (Integer val : list) {
- if (val.equals(value)) {
- i++;
- }
- }
- return i;
- }
- public static List<Double> getDistanceListForUser(User user) {
- Statistic statistic = new Statistic();
- List<Double> distances = new ArrayList<>();
- String pass = user.getPass();
- String passChar = statistic.getOnlyCharacters(pass);
- String passDigits = statistic.getOnlyDigits(pass);
- String fullName = user.getFullName();
- String firsName = statistic.getFirstName(fullName);
- String lastName = statistic.getSecondName(fullName);
- String userName = user.getUsername();
- String email = statistic.getMailBeforeSign(user.getEmail());
- String dataYear = "1";
- String dataMonth = "1";
- String dataDay = "1";
- if (user.getBirth() != null) {
- dataYear = Integer.toString(user.getBirth().get(Calendar.YEAR));
- dataMonth = Integer.toString(user.getBirth().get(Calendar.MONTH));
- dataDay = Integer.toString(user.getBirth().get(Calendar.DAY_OF_MONTH));
- }
- String dmy = dataDay + dataMonth + dataYear;
- String ymd = dataYear + dataMonth + dataDay;
- distances.add(statistic.getCoefDistance(passChar, fullName));
- distances.add(statistic.getCoefDistance(passChar, firsName));
- distances.add(statistic.getCoefDistance(passChar, lastName));
- distances.add(statistic.getCoefDistance(passChar, email));
- distances.add(statistic.getCoefDistance(passChar, userName));
- distances.add(statistic.getCoefDistance(passDigits, dataYear));
- distances.add(statistic.getCoefDistance(passDigits, dataMonth));
- distances.add(statistic.getCoefDistance(passDigits, dataDay));
- distances.add(statistic.getCoefDistance(passDigits, dmy));
- distances.add(statistic.getCoefDistance(passDigits, ymd));
- return distances;
- }
- public static Double getMinimumCoeficient(List<Double> list) {
- return Collections.min(list);
- }
- public static Map<Double, List<Integer>> getMinIndex(List<User> users, Map<Double, List<Integer>> minCoefIndex, List<Integer> indexes) {
- Statistic statistic = new Statistic();
- for (User u : users) {
- List<Double> distances = getDistanceListForUser(u);
- Double min = getMinimumCoeficient(distances);
- int index = statistic.getIndexOfValue(distances, min);
- indexes.add(index);
- minCoefIndex.put(min, indexes);
- }
- return minCoefIndex;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement