Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. package textproc;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.HashSet;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.Set;
  9. import java.util.TreeMap;
  10.  
  11. public class GeneralWordCounter implements TextProcessor{
  12.  
  13. private Set<String> stopwords = new HashSet<String>();
  14. private Map<String, Integer> wordlist = new TreeMap<String, Integer>(); //HashMap
  15.  
  16.  
  17. public GeneralWordCounter(Set<String> s1) {
  18.  
  19. stopwords=s1;
  20.  
  21. }
  22.  
  23. public void process(String w) {
  24.  
  25. if (!stopwords.contains(w)) {
  26.  
  27. if(wordlist.containsKey(w)) {
  28.  
  29. wordlist.put(w, wordlist.get(w)+1);
  30.  
  31. } else {
  32.  
  33. wordlist.put(w, 1);
  34.  
  35. }
  36.  
  37. }
  38. }
  39.  
  40. public void report() {
  41.  
  42.  
  43.  
  44. //for (String key : wordlist.keySet()) {
  45.  
  46. // gör något med key och m.get(key)
  47.  
  48. //if (wordlist.get(key)>=200)
  49.  
  50. //System.out.println(wordlist.get(key) + ": " + key);
  51.  
  52. Set<Map.Entry<String, Integer>> wordSet = wordlist.entrySet();
  53. List<Map.Entry<String, Integer>> wordList = new ArrayList<>(wordSet);
  54. wordList.sort(new WordCountComparator());
  55.  
  56.  
  57. for (int i=0; i<100; i++) {
  58.  
  59. System.out.println( wordList.get(i) );
  60.  
  61.  
  62. }
  63.  
  64. }
  65.  
  66. }
  67.  
  68.  
  69.  
  70.  
  71. package textproc;
  72. import java.util.*;
  73. import java.util.Map.Entry;
  74.  
  75. public class WordCountComparator implements Comparator<Map.Entry<String,Integer>> {
  76.  
  77. @Override
  78. public int compare(Entry<String, Integer> arg0, Entry<String, Integer> arg1) {
  79.  
  80. if (arg0.getValue() < arg1.getValue()) {
  81.  
  82. return 1;
  83.  
  84. }
  85.  
  86. else if (arg0.getValue() > arg1.getValue()) {
  87.  
  88. return -1;
  89.  
  90. }
  91.  
  92.  
  93. else {
  94.  
  95. return 0;
  96.  
  97. }
  98. //return arg0.getValue() - arg1.getValue(); returnerar int som är skillnaden mellan argumenten
  99. }
  100.  
  101.  
  102.  
  103.  
  104.  
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement