`
cooliufang
  • 浏览: 129869 次
社区版块
存档分类
最新评论

将数组按照首字母分成多个内部有序的数组

    博客分类:
  • Java
阅读更多
在csdn上看到这道面试题,就拿过来简单练练手!

package temporary;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public class SortWord {

	/**
	 * 有一数组S[]={good,apple,fix,soft,food,god ...} 
	 * 要求将这个数组按照首字母分成多个数组,使其成为{apple ...} {fix,food ...} {good,god ...}这种
	 * 且每一个数组内部都有序的?
	 * @param args
	 */
	
	public static void main(String[] args) {
		String[] s = {"good","apple","fix","soft","food","god"};
		System.out.println("单词数组为:\t" + Arrays.toString(s));
		//先排序
		Arrays.sort(s);
		System.out.println("排序后为:\t" + Arrays.toString(s));
		//再分组
		Map<Character, List<String>> map = new LinkedHashMap<Character, List<String>>();
		
		
//		//method1:
//		for (int i = 0; i< s.length; i++) {			
//			map.put(s[i].charAt(0), new ArrayList<String>());
//		}	
//		for (int i=0; i<s.length; i++) {
//			String str = s[i];
//			char c = str.charAt(0);			
//			map.get(c).add(str);			
//		}
		
		//method 2:
		for (int i=0; i<s.length; i++) {
			String str = s[i];
			char c = str.charAt(0);			
			if (map.containsKey(c)) {
				map.get(c).add(str);
			} else {
				List<String> list = new ArrayList<>();
				list.add(str);
				map.put(c, list);
			}			
		}
		
		//输出
		System.out.print("分组后为:\t");
		for (Character c : map.keySet()) {
			System.out.print(map.get(c) + " ");
		}
	}
}


【output】
单词数组为: [good, apple, fix, soft, food, god]
排序后为: [apple, fix, food, god, good, soft]
分组后为: [apple] [fix, food] [god, good] [soft]
分享到:
评论

相关推荐

    微信小程序-首字母排序选择功能开发.zip

    排序完成后,可以按照首字母将数据分成多个组,每组对应一个字母。这可以通过遍历排序后的数组,检查当前元素与前一个元素的首字母是否相同来实现。不同的话,就创建新的分组。 5. **动态渲染UI** 微信小程序中,...

    汇编语言 20个练习题目 代码加实验报告

    5.6 编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中的数据的个数显示出来。 5.7 试编制一个汇编语言程序,求出首地址为DATA的100D字数组中的最小偶数,并把它放在...

    数据结构及常用算法.docx

    归并排序是基于分治策略的一种排序方法,首先将数组分解为较小的子数组,然后递归地排序这些子数组,最后将它们合并为一个有序数组。 #### 分配类排序 - **多关键字排序**:例如扑克牌排序,按照花色和数字排序。 ...

    总结office习题.docx

    它将数组分成两半,分别排序,然后合并两个已排序的半数组。迭代和递归两种方式都能实现。 9. **快速排序**:快速排序采用“分区”策略,选取一个基准元素,将数组分为两部分,小于基准的放一边,大于的放另一边,...

    javascript实现根据汉字获取简拼

    这个数组被分成了26个部分,每个部分包含的汉字首字母相同,按照英文字母顺序排列。同时,`arrNumLetter`数组用于对应`arrInitialChart`中每个部分的首字母,而`arrPolyphone`数组则存储了377个多音字的首字母字符串...

    VC++6.0核心编程源码.rar

    从系统内部来讲,当一个Windows函数检测到一个错误时,它会使用一个称为线程本地存储器的机制,将相应的错误代码号码与调用的线程关联起来。(“线程本地存储器”将在第21章中介绍)。这将使线程能够互相独立地运行...

    数据结构(C++)有关练习题

    4、 请用C++结合链表编写一个简单的机票订票程序,要求完成以下功能: a. 允许出现多个班机; b. 创建一个班机链表,每个节点都包含指向一个乘客链表的指针; c. 该程序要有顾客购票,查询班机起飞降落...

    java私塾学习笔记整理

    - 类名首字母大写。 - 常量全大写,单词间用下划线隔开。 **三、数据类型** Java中的数据类型分为两大类: 1. **基本数据类型**:如`int`、`float`、`boolean`等。 2. **引用数据类型**:如`String`、`Array`、...

    高级软件工程师面试题

    - 类名: 首字母大写,后续单词首字母也大写,如`MyClassName`。 - 方法名: 采用驼峰命名法,如`getMyMethod`。 - 变量名: 采用驼峰命名法,如`myVariable`。 - 常量名: 所有字母大写,单词间用下划线分割,如`MY...

    delphi 开发经验技巧宝典源码

    0159 如何将字符串首字母大写 104 5.3 字符串的相关判断 105 0160 判断某一字符是否在字符串中 105 0161 判断字符串是由数字、大写字母或小写字母组成 105 0162 判断字符串中的某一字符是否大写 106 0163...

    delphi 开发经验技巧宝典源码06

    0159 如何将字符串首字母大写 104 5.3 字符串的相关判断 105 0160 判断某一字符是否在字符串中 105 0161 判断字符串是由数字、大写字母或小写字母组成 105 0162 判断字符串中的某一字符是否大写 106 0163...

    《数据结构 1800题》

    8. 一个算法具有 5个特性: (1)有穷性 、 (2)确定性 、 (3)可行性 ,有零个或多个输入、有一个或多个输出。 《数据结构 1800题》 9.已知如下程序段 FOR i:= n DOWNTO 1 DO {语句 1} BEGIN x:=x+1;...

    2012年1月自考数据结构试题真题1

    根据题目描述,“每个结点有且仅有一个直接前趋和多个(或无)直接后继”,这符合树状结构的特点。树状结构中,除了根节点外,每个节点都有一个父节点,并可以有任意数量的子节点。 - A. **树状结构**:正确。符合...

    第十四届绍兴市少儿信息学竞赛初赛试题

    具体步骤为:将编号为1和2的圆盘移至B柱,然后将1号圆盘移回A柱,再将3号圆盘移至B柱,然后将2号圆盘移至C柱,再将1号圆盘移至B柱,再将4号圆盘移至B柱,然后将1号圆盘移至A柱,再将5号圆盘移至B柱,再将4号圆盘移至...

    PHP MYSQl 开发规范

    - 多个变量赋值时,考虑对齐变量名,以提高代码可读性。 - 示例: ```php $a = $b; $test = 1; $myGod = "我是神"; ``` 4. **换行** - 条件及函数段内的程序块,考虑首行多换一行,以方便阅读。 - 函数或...

    单片机C语言试题

    选项中只有`short`和`char`是合法的关键字,但题目中`Char`首字母大写,因此不符合C语言规定。故正确答案为`short`。 2. **片内RAM的20H~2FH为位寻址区** - 正确答案:B、00H~7FH - 解析:在8051系列单片机中,...

    用c描述的数据结构演示软件

    图示窗口分成3部分:中间部分或显示客户流动情况的动画,或显示程序执行过程中事件表和4个队列的数值,上方两个按钮用以切换动画或静态数据,下方则显示客户总人数、客户逗留的累计时间以及调节动画中小人移动速度的...

Global site tag (gtag.js) - Google Analytics