Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置
面试题查找重复元素并打印重复次数和重复位置,一顿懵逼,回来死磕写下来,打印指定重复次数和最大次数,其他在此基础上可以再更新
package sort; import org.testng.annotations.Test;import sun.org.mozilla.javascript.internal.ast.NewExpression; import java.util.*; /** * Created by liangwei on 2018/10/18. */public class SearchString { /** * 找出重复字符、记录重复字符次数、记录重复字符位置 * @param str * @return map */ public Map get_str_count_index(String[] str){ Map<String,Map<Integer,ArrayList>> map = new HashMap<String ,Map<Integer,ArrayList>>();//key值记录重复的字符串,value记录出现的次数和位置 int i = 0; for (String s:str ){ if (map.get(s)==null){ Map<Integer,ArrayList> count_where = new HashMap<Integer ,ArrayList>();//key值记录重复字符串出现的次数,value记录重复字符出现的位置 int count = 1;//重复字符串计数器 ArrayList<Integer> list = new ArrayList<Integer>(); list.add(i);//重复字符串下标 count_where.put(count,list); map.put(s,count_where); i++; }else { for (int c:map.get(s).keySet()){ ArrayList index = map.get(s).get(c); index.add(i);//增加出现index位置 c++; map.get(s).put(c,index);//更新计数器和下标信息 map.get(s).remove(--c);//删除掉之前的记录信息 } i++; } } return map; } public void display(String[] arry) throws Exception{ if (arry==null){ throw new Exception("输入数组为空,请重新输入"); } Map<String,HashMap<Integer,ArrayList>> map = get_str_count_index(arry); ArrayList count = new ArrayList<Integer>();//存取所有字符串出现的次数 for (Map.Entry<String,HashMap<Integer,ArrayList>> key : map.entrySet()){//循环获取记录字符串重复次数和位置map for (Map.Entry<Integer,ArrayList> map1 :key.getValue().entrySet()){//循环获取记录字符串重复次数 count.add(map1.getKey()); } } // Arrays.sort(count.toArray()); Collections.sort(count);//对集合排序,默认是升序,最后一个是重复次数最多的 //打印重复次数最多的元素信息 for (String key : map.keySet()){//循环获取所有的重复字符串 for (int c:map.get(key).keySet()){//循环获取重复字符串的次数 if (c == count.get(count.size()-1)){//和最大重复次数对比,相等就代表当前的字符串是重复次数最多的那个 System.out.printf("重复次数最多的字符串是:%s,重复次数%d,所在位置:%s\n",key,c,map.get(key).get(c)); } } } //输出指定重复次数的字符串信息 for (String key :map.keySet()){ for (int c:map.get(key).keySet()){ if (c==5||c==6||c==1){ System.out.printf("重复字符串:%s,重复次数:%d,重复字符串出现位置:%s\n",key,c,map.get(key).get(c)); } } } } public static void main(String[] args) { String[] arry = {"aa","bb","cc","bb","aa","ooo","dd","aaa","aa"}; // String[] arry = {}; SearchString searchString = new SearchString(); try { searchString.display(arry); } catch (Exception e) { e.printStackTrace(); } }}
转载于:https://www.cnblogs.com/lanrumeng/p/9814088.html
Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置相关推荐
- Java 查找数组中某个数字的下标
实现功能: 例如: 在数组{15,13,27,11,55,45,23,28)中找出45的下标 结果为:5 代码如下: package come.base; public class xiabiao { ...
- JavaScript 与java中数组的区别
1. JavaScript 中的数组的长度是可变的 Java中数组的长度是固定的 2.javaScript中的元素是可以是任意类型
- java数组找出重复元素及次数_Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置...
面试题查找重复元素并打印重复次数和重复位置,一顿懵逼,回来死磕写下来,打印指定重复次数和最大次数,其他在此基础上可以再更新 package sort; import org.testng.annota ...
- Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素-un
ylbtech-Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素 1.返回顶部 1. Java 实例 - 查找数组中的重复元素 Java 实例 以下实例 ...
- Java 数组常用操作二(扩充、扩容、重复数据、动态数组、数组差集、数组交集、查找指定元素、判断是否相同、数组合并)
数组扩容(扩充) public class Main {public static void main(String[] args) {String[] names = new String[] { ...
- 题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现)
题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现) 题目: 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字 ...
- java从数组查找指定整数_如何在Java中使用重复项查找整数数组中的K个缺失数字?...
java从数组查找指定整数 自从我讨论任何编码或算法面试问题以来已经有很长时间了,因此我想重新考虑一种最流行的基于数组的编码问题,即在给定数组中查找缺失的数字. 在进行编程工作面试之前,您可能已经听说 ...
- java删除数组中重复元素
id="BAIDU_DUP_fp_iframe" src="https://pos.baidu.com/wh/o.htm?ltr="> > src= ...
- php 查找数组相同元素,查找数组中重复的元素
本文收集整理关于查找数组中重复的元素的相关议题,使用内容导航快速到达. 内容导航: Q1:在c语言中输入数组两个数组,查找重复元素并输出怎么写啊 可以一次读入N个数据.可以考虑以回车结束读入的一组. ...
最新文章
- jwt单点登录_单点登录SSO技术选型
- 致命问题多数据源引发SpringBatch多事物
- Composer 本地路径加载 laravel-admin 扩展包
- 漫画:下辈子你还当程序员么?
- UNIGUI中如果获得Session情况
- cad菜单栏快捷键_教你如何用富怡服装CAD画男衬衫的结构设计
- VirtualXposed 免ROOT使用Xposed模块
- 用户画像基础之应用落地和案例展示
- ITIL 4Foundation认证
- 特征函数(characteristic function)
- Linux僵尸进程堆栈分析,linux系统僵尸进程
- 实测:华为鸿蒙系统比 Android 系统快 60%!
- 【计网知识点总结】2 物理层
- 遗传算法(GA/NSGA)优化神经网络 GA-BP
- solo 电路 耳放_Graham Slee SOLO 耳机放大器发展史
- AE学习笔记 环绕粒子光线特效
- 积分体系与会员体系之间的那些事
- 三菱a系列motion软体_三菱M70第四轴参数设定一览表
- 广东高考英语计算机辅助口语考试,广东高考英语人机对话口语考试题型分析及备考策略...
- 网络安全级别划分为几个等级?网络安全入门
热门文章
- python自动登录教程_python实现校园网自动登录的示例讲解
- 训练和验证准确性_通过沉浸式虚拟现实观察动作增强运动想象训练
- 零基础学python语言_零基础如何入门Python语言?有哪些学习建议?
- miui 8 android对应关系,小米回应MIUI版本和安卓版本没有对应关系 你怎么看
- apache禁止访问html,apache 限制目录访问
- 2016江苏计算机二级考试时间,2016年江苏计算机二级考试报名时间_无忧考网.pdf...
- STM32CubedMX 下载与安装
- 2021年春季学期-信号与系统-第十二次作业参考答案-第四小题
- 工科学生懂艺术,魔鬼神仙挡不住
- Prolific PL2303SA 调试