Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.netcracker.ssh.src;
- import com.netcracker.ssh.src.Statistics.Statistic;
- import com.netcracker.ssh.src.utils.*;
- import org.apache.commons.collections.map.HashedMap;
- 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("result00", "UTF-8");
- IteratorK iter = new IteratorK(10000, 1);
- Statistic statistic = new Statistic();
- int i = 0;
- Map<Double, List<Integer>> minCoefIndex = new HashMap<Double, List<Integer>>();
- List<Integer> indexes = new ArrayList<Integer>();
- while (iter.hasNext()) {
- List<User> users = iter.next();
- getMinIndex(users, minCoefIndex, indexes);
- }
- writer.print("MAP: " + minCoefIndex);
- writer.close();
- System.out.println("finish");
- }
- public int getNumberValueInList(Integer value, List<Integer> list){
- int i = 0;
- for(Integer val : list){
- if(val.equals(value)){
- i++;
- }
- }
- return i;
- }
- public Map<String, String> getUserDataList(User user) {
- Statistic statistic = new Statistic();
- // List<String> userData = new ArrayList<String>();
- Map<Integer, Double> m = new HashMap<>();
- Map<String, String> mappingUser = new HashMap<>();
- String pass = user.getPass();
- mappingUser.put("pass", pass);
- String fullName = user.getFullName();
- mappingUser.put("fullName", fullName);
- String firsName = statistic.getFirstName(fullName);
- mappingUser.put("firsName", firsName);
- String lastName = statistic.getSecondName(fullName);
- mappingUser.put("lastName", lastName);
- String userName = user.getUsername();
- mappingUser.put("userName", userName);
- String email = statistic.getMailBeforeSign(user.getEmail());
- mappingUser.put("email", email);
- 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));
- }
- mappingUser.put("dataYear", dataYear);
- mappingUser.put("dataMonth", dataMonth);
- mappingUser.put("dataDay", dataDay);
- mappingUser.put("DMY", dataDay + dataMonth + dataYear);
- mappingUser.put("YMD", dataYear + dataMonth + dataDay);
- return mappingUser;
- }
- 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