*/
for(String s : list){
int x = map.get(s);
if(x>max){
maxString = s;
max = x;
}
}
System.out.println(maxString);
long end = System.currentTimeMillis();
System.out.println(“共耗时:” + (end - start) + “毫秒”);
}
}
package com.algorithm.interview;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Frequency {
public void count() throws Exception {
File file = new File(“D:\main.txt”);
FileReader fileReader = new FileReader(file);
BufferedReader reader = new BufferedReader(fileReader);
StringBuilder builder = new StringBuilder();
String line = “”;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
Pattern pattern = Pattern.compile(“[a-zA-Z]+”);
String content = builder.toString();
Matcher matcher = pattern.matcher(content);
Map<String, Integer> map = new HashMap<String, Integer>();
String word = “”;
Integer times = 0;
while (matcher.find()) {
word = matcher.group();
if (map.containsKey(word)) {
times = map.get(word);
map.put(word, times+1);
} else {
map.put(word, 1);
}
}
List<Map.Entry<String, Integer>> list = new LinkedList<Map.Entry<String, Integer>>(
map.entrySet());// put Entry to List
Compare compare = new Compare();//rewrite Comparator
for (int i = 0; i < 5; i++) {
Map.Entry<String, Integer> entry = Collections.max(list, compare);// max
String key = entry.getKey();
Integer value = entry.getValue();
int index = list.indexOf(entry);//get max’s index
System.out.println(key + " " + value);
list.remove(index);//remove max
}
}
public static void main(String[] args) {
try {
Frequency frequency = new Frequency();
frequency.count();
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.Map.Entry;
public class wordCount {
public static void main(String arg[]) {
int wordCount = 0; //用于统计单词的总个数
Map<String, Integer> map = new HashMap<String, Integer>();//用于统计各个单词的个数,排序
String sentence = “hello,my name is Tom,what is your name?he said:“my name is John””;
StringTokenizer token = new StringTokenizer(sentence);//这个类会将字符串分解成一个个的标记
while (token.hasMoreTokens()) { //循环遍历
wordCount++;
String word = token.nextToken(“, ?.!:”“‘’\n”); //括号里的字符的含义是说按照,空格 ? . : “” ‘’ \n去分割,如果这里你没明确要求,即括号里为空,则默认按照空格,制表符,新行符和回车符去分割
if (map.containsKey(word)) { //HashMap不允许重复的key,所以利用这个特性,去统计单词的个数
int count = map.get(word);
map.put(word, count + 1); //如果HashMap已有这个单词,则设置它的数量加1
} else
map.put(word, 1); //如果没有这个单词,则新填入,数量为1
}
System.out.println(“总共单词数:” + wordCount);
sort(map); //调用排序的方法,排序并输出!
}
public static void sort(Map<String, Integer> map) {
List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后的内容
在开头跟大家分享的时候我就说,面试我是没有做好准备的,全靠平时的积累,确实有点临时抱佛脚了,以至于我自己还是挺懊恼的。(准备好了或许可以拿个40k,没做准备只有30k+,你们懂那种感觉吗)
如何准备面试?
1、前期铺垫(技术沉积)
程序员面试其实是对于技术的一次摸底考试,你的技术牛逼,那你就是大爷。大厂对于技术的要求主要体现在:基础,原理,深入研究源码,广度,实战五个方面,也只有将原理理论结合实战才能把技术点吃透。
下面是我会看的一些资料笔记,希望能帮助大家由浅入深,由点到面的学习Java,应对大厂面试官的灵魂追问
这部分内容过多,小编只贴出部分内容展示给大家了,见谅见谅!
- Java程序员必看《Java开发核心笔记(华山版)》
- Redis学习笔记
- Java并发编程学习笔记
四部分,详细拆分并发编程——并发编程+模式篇+应用篇+原理篇
- Java程序员必看书籍《深入理解 ava虚拟机第3版》(pdf版)
- 大厂面试必问——数据结构与算法汇集笔记
其他像Spring,SpringBoot,SpringCloud,SpringCloudAlibaba,Dubbo,Zookeeper,Kafka,RocketMQ,RabbitMQ,Netty,MySQL,Docker,K8s等等我都整理好,这里就不一一展示了。
2、狂刷面试题
技术主要是体现在平时的积累实用,面试前准备两个月的时间再好好复习一遍,紧接着就可以刷面试题了,下面这些面试题都是小编精心整理的,贴给大家看看。
①大厂高频45道笔试题(智商题)
②BAT大厂面试总结(部分内容截图)
③面试总结
3、结合实际,修改简历
程序员的简历一定要多下一些功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”这三者的区别一定要区分清楚,否则就是在给自己挖坑了。当然不会包装,我可以将我的简历给你参考参考,如果还不够,那下面这些简历模板任你挑选:
以上分享,希望大家可以在金三银四跳槽季找到一份好工作,但千万也记住,技术一定是平时工作种累计或者自学(或报班跟着老师学)通过实战累计的,千万不要临时抱佛脚。
另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
转存中…(img-8qcZ9pD3-1713392639826)]
以上分享,希望大家可以在金三银四跳槽季找到一份好工作,但千万也记住,技术一定是平时工作种累计或者自学(或报班跟着老师学)通过实战累计的,千万不要临时抱佛脚。
另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!