完成了对于公司界面求职人推荐匹配度问题
public void selectAllSeekers(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ParseException { System.out.println("selectAllSeekers..."); BufferedReader br = request.getReader(); String params = br.readLine(); ComSeekers comSeekers = JSON.parseObject(params, ComSeekers.class); Company company = service.selectCompanyByName(comSeekers.getCompanyName()); List<Seeker> seekers = seekerService.selectAllByCondition(comSeekers.getSeeker()); Map<Seeker,Double> postIntegerMap =new HashMap<>(); for (int i = 0; i < seekers.size(); i++) { Double cosineSimilarity = MyTextComparator.getCosineSimilarity(company.getIntroduction(), seekers.get(i).getSkill()); postIntegerMap.put(seekers.get(i),cosineSimilarity); } List<SeekerValue> hsahpaixu = Hashmap.hsahpaixu2(postIntegerMap); String _currentPage = request.getParameter("currentPage"); String _pageSize = request.getParameter("pageSize"); int currentPage = Integer.parseInt(_currentPage); int pageSize = Integer.parseInt(_pageSize); List<SeekerValue> 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<SeekerValue> postBeenSum =new PostBeenSum<>(); postBeenSum.setRows(postBypage); postBeenSum.setTotalCount(hsahpaixu.size()); response.setContentType("text/json;charset=utf-8"); String jsonString = JSON.toJSONString(postBeenSum); response.getWriter().write(jsonString); }
public static List<SeekerValue> hsahpaixu2(Map<Seeker, Double> map) { //将map.entrySet()转换成list List<Entry<Seeker, Double>> list = new ArrayList<Entry<Seeker, Double>>(map.entrySet()); Collections.sort(list, new Comparator<Entry<Seeker, Double>>() { //降序排序 @Override public int compare(Entry<Seeker, Double> o1, Entry<Seeker, Double> o2) { //return o1.getValue().compareTo(o2.getValue()); return o2.getValue().compareTo(o1.getValue()); } }); // List<Seeker> posts =new ArrayList<>(); List<SeekerValue> seekerValues=new ArrayList<>(); for (Entry<Seeker, Double> mapping : list) { SeekerValue seekerValue=new SeekerValue(); seekerValue.setSeeker(mapping.getKey()); seekerValue.setValue(mapping.getValue()); seekerValues.add(seekerValue); // posts.add(mapping.getKey()); System.out.println(mapping.getKey() + ":" + mapping.getValue()); } return seekerValues; }