Advertisement
Guest User

Untitled

a guest
Sep 20th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.52 KB | None | 0 0
  1.  //TODO: prettify me beacuse there are two simmilar methods
  2.     private List<Article.Feature> getTopThreeFeatures(FeatureStatistics stats) {
  3.         Map<Article.Feature, Integer> searchCounts = stats.getSearchCounts();
  4.         Map<Article.Feature, Integer> topThreeFeatures = new HashMap<>();
  5.         int highestValue = 0;
  6.         Article.Feature highestFeature = null;
  7.         int topThreeCounter = 3;
  8.  
  9.         while ((topThreeCounter > 0) && (searchCounts.size() > 0)) {
  10.             for (Map.Entry<Article.Feature, Integer> entry : searchCounts.entrySet()) {
  11.                 if (entry.getValue() > highestValue) {
  12.                     highestFeature = entry.getKey();
  13.                     highestValue = entry.getValue();
  14.                 }
  15.             }
  16.             if (highestFeature != null) {
  17.                 topThreeFeatures.put(highestFeature, highestValue);
  18.             }
  19.             searchCounts.remove(highestFeature);
  20.             highestFeature = null;
  21.             highestValue = 0;
  22.             topThreeCounter--;
  23.         }
  24.  
  25.         ArrayList<Article.Feature> features = new ArrayList<>();
  26.         for (Map.Entry<Article.Feature, Integer> entry : topThreeFeatures.entrySet()) {
  27.             features.add(entry.getKey());
  28.         }
  29.         return features;
  30.     }
  31.  
  32.     private List<Article.SideOrder> getTopThreeSideOrders(SideOrderStatistics stats) {
  33.         Map<Article.SideOrder, Integer> searchCounts = stats.getSearchCounts();
  34.         Map<Article.SideOrder, Integer> topThreeSideOrders = new HashMap<>();
  35.         int highestValue = 0;
  36.         Article.SideOrder highestSideOrder = null;
  37.         int topThreeCounter = 3;
  38.  
  39.         while ((topThreeCounter > 0) && (searchCounts.size() > 0)) {
  40.             for (Map.Entry<Article.SideOrder, Integer> entry : searchCounts.entrySet()) {
  41.                 if (entry.getValue() > highestValue) {
  42.                     highestSideOrder = entry.getKey();
  43.                     highestValue = entry.getValue();
  44.                 }
  45.             }
  46.             if (highestSideOrder != null) {
  47.                 topThreeSideOrders.put(highestSideOrder, highestValue);
  48.             }
  49.             searchCounts.remove(highestSideOrder);
  50.             highestSideOrder = null;
  51.             highestValue = 0;
  52.             topThreeCounter--;
  53.         }
  54.  
  55.         ArrayList<Article.SideOrder> sideOrders = new ArrayList<>();
  56.         for (Map.Entry<Article.SideOrder, Integer> entry : topThreeSideOrders.entrySet()) {
  57.             sideOrders.add(entry.getKey());
  58.         }
  59.         return sideOrders;
  60.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement