博主在写代码的时候没事总结起来的一些Java8的stream流方法以及,判断字符出现次数的小测试,留着希望能帮助有缘人,哈哈
public static void main(String[] args) {
long start = System.currentTimeMillis();
List numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
// 获取对应的平方数并去重
List squaresList = numbers.stream().map(i -> i * i).distinct().sorted(Comparator.comparing(Integer::intValue).reversed()).collect(Collectors.toList());
System.out.println(squaresList);
List nums = Lists.newArrayList(1, 1, null, 2, 3, 4, null, 12, 5, 6, 22, 7, 8, 9, 10);
//不要前几个,然后再从中取前几个之和
int sum = nums.stream().filter(Objects::nonNull).distinct().mapToInt(num -> num * 2).skip(2).limit(4).sum();
System.out.println("sum is:" + sum);
//不要前两个,然后遍历到list集合中去
IntStream skip = nums.stream().filter(Objects::nonNull).distinct().mapToInt(num -> num * 2).skip(2);
List list = new ArrayList<>();
skip.forEach(list::add);
System.out.println("list is:" + list);
long end = System.currentTimeMillis();
System.out.println("总共耗费:" + ((end - start)));
String scan = new Scanner(System.in).nextLine();//获取键盘上输入的字符串;
Map map = new HashMap();//新建一个HashMap对象;
//通过FOR循环,把String的键值存放到map
for (int i = 0; i < scan.length(); i++) {
char temp = scan.charAt(i);//通过循环,找到字符串的每一位字符并存入到temp中;
if (map.containsKey(temp)) {//如果map里面有temp这个字符
map.put(temp, map.get(temp) + 1);//把temp的值加1;
} else {//如果map里面没有temp这个字符,
map.put(temp, 1);//把temp的值设为1;
}
}
int maxnum = Collections.max(map.values());//调用Collections类的max方法,获取map的值的集合;并找出最大的那个值;
Set set = new HashSet();//建立一个set对象
for (Map.Entry entry1 : map.entrySet()) { //通过集合的循环,把map的值放到entry1里,通过entry1找到值最大的maxnum的key;
if (entry1.getValue() == maxnum) {
set.add(entry1.getKey());
}
}
System.out.println("出现次数最多的字母为:" + set + " 最多出现次数为" + maxnum);
}