ArrayList和HashMap的结合使用
2018-01-13 23:26
253 查看
2.分析以下需求,并用代码实现:
(1)利用键盘录入,输入一个字符串
(2)统计该字符串中各个字符的数量
(3)如:
用户输入字符串"If~you-want~to~change-your_fate_I_think~you~must~come-to-the-dark-horse-to-learn-java"
程序输出结果:-(9)I(2)_(3)a(7)c(2)d(1)e(6)f(2)g(1)h(4)i(1)j(1)k(2)l(1)m(2)n(4)o(8)r(4)s(2)t(8)u(4)v(1)w(1)y(3)~(6)
基本解决思路:
1,用ArrayList接收输入的字符
2,对输入的字符串转换成字符数组,统计各个字符的总出现数,
3,将 字符:字符个数 存储到hashMap中
4,遍历输入hashmap表即可
主程序大致框架:
funciton_1()的主要代码如下:
//接收字符串函数,输入字符串,直到输入 end 为止
public static void function_1(List<String> array) {
Scanner sc = new Scanner(System.in);
while(true) {
String str = sc.next();
if("end".equals(str)) {
sc.close();
break;
}
array.add(str);
}
}
function_2()的主要代码如下:
function_3()的主要代码如下:
我的程序的运行结果如下:
![](https://img-blog.csdn.net/20180113233431549?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5nZWxfZ3Vvbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(1)利用键盘录入,输入一个字符串
(2)统计该字符串中各个字符的数量
(3)如:
用户输入字符串"If~you-want~to~change-your_fate_I_think~you~must~come-to-the-dark-horse-to-learn-java"
程序输出结果:-(9)I(2)_(3)a(7)c(2)d(1)e(6)f(2)g(1)h(4)i(1)j(1)k(2)l(1)m(2)n(4)o(8)r(4)s(2)t(8)u(4)v(1)w(1)y(3)~(6)
基本解决思路:
1,用ArrayList接收输入的字符
2,对输入的字符串转换成字符数组,统计各个字符的总出现数,
3,将 字符:字符个数 存储到hashMap中
4,遍历输入hashmap表即可
主程序大致框架:
public static void main(String[] args) { List<String> array = new ArrayList<String>(); Map<Character,Integer> map = new HashMap<Character,Integer>(); function_1(array);//键盘接收字符串 function_2(array,map);//将字符串转换成字符数组,并将统计的字符和字符个数存储到HashMap中 function_3(map); //遍历HashMap,输出最后结果 }
funciton_1()的主要代码如下:
//接收字符串函数,输入字符串,直到输入 end 为止
public static void function_1(List<String> array) {
Scanner sc = new Scanner(System.in);
while(true) {
String str = sc.next();
if("end".equals(str)) {
sc.close();
break;
}
array.add(str);
}
}
function_2()的主要代码如下:
public static void function_2(List<String> array,Map<Character,Integer> map) { //创建字符数组接收字符串转换过来的字符数组 char[] ch = array.toString().toCharArray(); for (int i = 0; i < ch.length; i++) { System.out.print(ch[i]); } System.out.println("\n==================================="); int[] number = new int[ch.length]; //双重for循环统计字符个数 //由于String.toCharArray()是把"[","]",给算上的,所以将最开始和最后的括号去掉 for (int i = 1; i < ch.length-1; i++) { int count = 1; //字符最开始有一个 for (int j = 1; j < ch.length-1; j++) { if(ch[i] == ch[j]) number[i] = count++; } } //将统计的字符个数还有数字添加到HashMap中 //由于String.toCharArray()是把"[","]",给算上的,所以将最开始和最后的括号去掉 for (int i = 1; i < number.length-1; i++) { map.put(ch[i], number[i]); } }
function_3()的主要代码如下:
public static void function_3(Map<Character,Integer> map) { //遍历map集合,输出相应的键值对 for(Map.Entry<Character,Integer> ent 4000 ry : map.entrySet()) { char c = entry.getKey(); Integer in = entry.getValue(); System.out.print(c+"("+in+")"+" "); } }
我的程序的运行结果如下:
相关文章推荐
- ArrayList、HashMap 与 员工类(程序员、经理的结合使用) 相当于集合与继承的总结
- arraylist结合iterator使用实例
- ArrayList,LinkedList,HashSet、HashMap的优缺点 原理 如何选择使用
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的使用与区别
- HashMap、ArrayList、Set、LinkedHashMap的使用及区别
- java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
- java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
- 以LinkedHashMap和ArrayList的结合使用,返回一个类似记录集的ArrayList
- 熟练使用Arrays-数组-ArrayList-HashMap等常用Java类型的方法
- ArrayList<HashMap<String, Object>>使用示例!
- 使用集合(ArrayList,HashMap等做对比)实现员工管理系统案例
- ArrayList<HashMap<String, Object>>使用示例!
- java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
- ArrayList、TreeSet、TreeMap、HashSet和HashMap的简单使用示例
- HashMap结合hashCode和equals方法的使用
- ArrayList 、LinkList、List 区别 & 迭代器iterator的使用 & HashMap、Hashtable、LinkedHashMap、TreeMap
- JAVA基础--JAVA API集合框架(ArrayList、HashSet、HashMap使用)14
- 迭代Iterator结合ArrayList集合的使用及基本使用,再看迭代Iterator原理
- List、Map、Set的理解(LinkedList和ArrayList、Vector和ArrayList、HashMap和HashTable和HashSet区别与使用)
- Android——ArrayList 、LinkList、List 区别 & 迭代器iterator的使用 & HashMap、Hashtable、LinkedHashMap、TreeMap