完成了求职人界面岗位推荐匹配度问题。
public void selectPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { System.out.println("selectPost..."); BufferedReader br = request.getReader(); String params = br.readLine(); PostBean postBean = JSON.parseObject(params, PostBean.class); Seeker seeker = seekerService.selectByName(postBean.getUsername()); // List<Post> posts = postService.selectPost(); List<Post> posts = postService.selectPostByCondition(postBean.getPost()); Map<Post,Double> postIntegerMap =new HashMap<>(); for (int i = 0; i < posts.size(); i++) { Double cosineSimilarity = MyTextComparator.getCosineSimilarity(seeker.getSkill(), posts.get(i).getSkillRequire()); postIntegerMap.put(posts.get(i),cosineSimilarity); } List<PostValue> hsahpaixu = Hashmap.hsahpaixu(postIntegerMap); String _currentPage = request.getParameter("currentPage"); String _pageSize = request.getParameter("pageSize"); int currentPage = Integer.parseInt(_currentPage); int pageSize = Integer.parseInt(_pageSize); List<PostValue> postBypage=new ArrayList<>(); int length=(currentPage-1)*pageSize+pageSize; if(length>hsahpaixu.size()) length=hsahpaixu.size(); for (int i = (currentPage-1)*pageSize; i <length ; i++) { postBypage.add(hsahpaixu.get(i)); } PostBeenSum<PostValue> postBeenSum =new PostBeenSum<>(); postBeenSum.setRows(postBypage); postBeenSum.setTotalCount(hsahpaixu.size()); response.setContentType("text/json;charset=utf-8"); String jsonString = JSON.toJSONString(postBeenSum); //System.out.println(jsonString); response.getWriter().write(jsonString); }
public static List<PostValue> hsahpaixu(Map<Post, Double> map) { //将map.entrySet()转换成list List<Entry<Post, Double>> list = new ArrayList<Entry<Post, Double>>(map.entrySet()); Collections.sort(list, new Comparator<Entry<Post, Double>>() { //降序排序 @Override public int compare(Entry<Post, Double> o1, Entry<Post, Double> o2) { //return o1.getValue().compareTo(o2.getValue()); return o2.getValue().compareTo(o1.getValue()); } }); // List<Post> posts =new ArrayList<>(); List<PostValue> postValues=new ArrayList<>(); for (Entry<Post, Double> mapping : list) { PostValue postValue=new PostValue(); postValue.setPost(mapping.getKey()); postValue.setValue(mapping.getValue()); postValues.add(postValue); // posts.add(mapping.getKey()); System.out.println(mapping.getKey() + ":" + mapping.getValue()); } return postValues; }