Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.13 KB | None | 0 0
  1. package src;
  2.  
  3. import src.utils.IteratorK;
  4. import src.Statistics.*;
  5.  
  6.  
  7. import java.io.IOException;
  8. import java.io.PrintWriter;
  9. import java.util.*;
  10.  
  11.  
  12. public class Main {
  13. public static void main(String[] args) throws IOException {
  14.  
  15. PrintWriter writer = new PrintWriter("newtest08_1000", "UTF-8");
  16.  
  17.  
  18. IteratorK iter = new IteratorK(100, 1);
  19. Statistic statistic = new Statistic();
  20.  
  21. Integer[] index = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  22. List<Integer> ind = Arrays.asList(index);
  23.  
  24. Map<Integer, List<Integer>> valueAmount = new HashMap<>();
  25. List<List<Integer>> amounts = new ArrayList<>();
  26. List<Integer> amount0 = new ArrayList<>();
  27. amounts.add(amount0);
  28. List<Integer> amount1 = new ArrayList<>();
  29. amounts.add(amount1);
  30. List<Integer> amount2 = new ArrayList<>();
  31. amounts.add(amount2);
  32. List<Integer> amount3 = new ArrayList<>();
  33. amounts.add(amount3);
  34. List<Integer> amount4 = new ArrayList<>();
  35. amounts.add(amount4);
  36. List<Integer> amount5 = new ArrayList<>();
  37. amounts.add(amount5);
  38.  
  39. List<Integer> amount6 = new ArrayList<>();
  40. amounts.add(amount6);
  41. List<Integer> amount7 = new ArrayList<>();
  42. amounts.add(amount7);
  43. List<Integer> amount8 = new ArrayList<>();
  44. amounts.add(amount8);
  45. List<Integer> amount9 = new ArrayList<>();
  46. amounts.add(amount9);
  47. while (iter.hasNext()) {
  48. List<User> users = iter.next();
  49.  
  50. writer.println("!!!! + user size " + users.size());
  51. // writer.println("Users list: " + users);
  52. Map<Double, List<Integer>> minCoefIndex = new HashMap<>();
  53. List<Integer> indexes = new ArrayList<>();
  54. Map<Double, List<Integer>> minCoefIndexRRR = getMinIndex(users, minCoefIndex, indexes);
  55. // }
  56. // writer.println("MAP: " + minCoefIndex);
  57. writer.println("MAP SIZE : " + minCoefIndexRRR.size());
  58.  
  59.  
  60. for (Map.Entry<Double, List<Integer>> entry : minCoefIndexRRR.entrySet()) {
  61. writer.println("key " + entry.getKey());
  62. if (entry.getKey() == 0.8) {
  63. List<Integer> list = entry.getValue();
  64. for (int i = 0 ; i<ind.size();i++) {
  65. Integer number = getNumberValueInList(i, list);
  66. amounts.get(i).add(number);
  67. valueAmount.put(i, amounts.get(i));
  68. writer.println("value : " + i + " number " + number);
  69. }
  70. }
  71.  
  72. }
  73. writer.println("value amount " + valueAmount);
  74.  
  75.  
  76. }
  77.  
  78. Map<Integer, Integer> valueSum = new HashMap<>();
  79. for (Map.Entry<Integer, List<Integer>> entry : valueAmount.entrySet()) {
  80. valueSum.put(entry.getKey(),sumListElem(entry.getValue()));
  81. }
  82.  
  83. writer.println("FINAL MAP " + valueSum);
  84. writer.close();
  85. //
  86. // List<Integer> ind0 = minCoefIndex.get(0.25);
  87. // System.out.println("list index 0.0 " + ind0);
  88. // System.out.println(getNumberValueInList(7 , ind0));
  89.  
  90. System.out.println("finish");
  91.  
  92.  
  93. }
  94.  
  95. public static int sumListElem(List<Integer> list) {
  96. int sum = 0;
  97. for (Integer i : list)
  98. sum += i;
  99. return sum;
  100. }
  101.  
  102. public static int getNumberValueInList(Integer value, List<Integer> list) {
  103. int i = 0;
  104. for (Integer val : list) {
  105. if (val.equals(value)) {
  106. i++;
  107. }
  108. }
  109. return i;
  110. }
  111.  
  112.  
  113.  
  114. public static List<Double> getDistanceListForUser(User user) {
  115. Statistic statistic = new Statistic();
  116. List<Double> distances = new ArrayList<>();
  117. String pass = user.getPass();
  118. String passChar = statistic.getOnlyCharacters(pass);
  119. String passDigits = statistic.getOnlyDigits(pass);
  120. String fullName = user.getFullName();
  121. String firsName = statistic.getFirstName(fullName);
  122. String lastName = statistic.getSecondName(fullName);
  123. String userName = user.getUsername();
  124. String email = statistic.getMailBeforeSign(user.getEmail());
  125. String dataYear = "1";
  126. String dataMonth = "1";
  127. String dataDay = "1";
  128. if (user.getBirth() != null) {
  129. dataYear = Integer.toString(user.getBirth().get(Calendar.YEAR));
  130. dataMonth = Integer.toString(user.getBirth().get(Calendar.MONTH));
  131. dataDay = Integer.toString(user.getBirth().get(Calendar.DAY_OF_MONTH));
  132. }
  133. String dmy = dataDay + dataMonth + dataYear;
  134. String ymd = dataYear + dataMonth + dataDay;
  135.  
  136. distances.add(statistic.getCoefDistance(passChar, fullName));
  137. distances.add(statistic.getCoefDistance(passChar, firsName));
  138. distances.add(statistic.getCoefDistance(passChar, lastName));
  139. distances.add(statistic.getCoefDistance(passChar, email));
  140. distances.add(statistic.getCoefDistance(passChar, userName));
  141. distances.add(statistic.getCoefDistance(passDigits, dataYear));
  142. distances.add(statistic.getCoefDistance(passDigits, dataMonth));
  143. distances.add(statistic.getCoefDistance(passDigits, dataDay));
  144. distances.add(statistic.getCoefDistance(passDigits, dmy));
  145. distances.add(statistic.getCoefDistance(passDigits, ymd));
  146.  
  147. return distances;
  148.  
  149. }
  150.  
  151. public static Double getMinimumCoeficient(List<Double> list) {
  152. return Collections.min(list);
  153. }
  154.  
  155. public static Map<Double, List<Integer>> getMinIndex(List<User> users, Map<Double, List<Integer>> minCoefIndex, List<Integer> indexes) {
  156. Statistic statistic = new Statistic();
  157. for (User u : users) {
  158. List<Double> distances = getDistanceListForUser(u);
  159. Double min = getMinimumCoeficient(distances);
  160. int index = statistic.getIndexOfValue(distances, min);
  161. indexes.add(index);
  162. minCoefIndex.put(min, indexes);
  163. }
  164. return minCoefIndex;
  165. }
  166.  
  167.  
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement