java用map把list中首字母相同的单词放在一起

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java用map把list中首字母相同的单词放在一起相关的知识,希望对你有一定的参考价值。

参考技术A 可以放在一起的
放在一起的方法有;
1. 先创建一个list集合来存放map对象,然后在创建几个map对象来设置值
2.对map对象进行值的设置,然后把它添加到list中
3.创建一个resultMap的对象用来存最终结果
4.因为map的可以是set集合所以不会重复,就可以这样设置把所以出现在list中map的key值都设置到resultMap对象中初始值为0
5.然后再次重新遍历list中的所以map值与resultMap中对应的map的key相同的值相加,因为上一步对resultMap的初始化所以不会担心key不存在的情况,因此这里就可以实现累加效果
6.最后把resultMap值输出来就可以看到统计结果了。

java中怎样把输入的基本英文单词按首字母顺序排列?

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 规则:大写字母前于小写字母
 * 
 * @author Administrator
 *
 */
public class SortWords 

private static final String[] array =  "A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
"U", "V", "W", "X", "Y", "Z" ;

public static void main(String[] args) 
SortWords sw = new SortWords();
List<String> words = new ArrayList<String>();
words.add("book");
words.add("ear");
words.add("alert");
words.add("choice");
words.add("name");
words.add("memery");
words.add("fight");
words.add("call");
words.add("joy");
List<String> list = sw.sort(words, "forward");
for (String str : list) 
System.out.println(str);



public List<String> sort(List<String> words, String type) 
List<Word> list = new ArrayList<Word>();
List<String> res = new ArrayList<String>();
for (String word : words) 
Word w = indexNum(word);
list.add(w);

switch (type) 
case "forward":
Collections.sort(list, new Forward());
for (Word w : list) 
res.add(w.getContent());

break;
case "back":
Collections.sort(list, new Back());
for (Word w : list) 
res.add(w.getContent());

break;


return res;


public Word indexNum(String word) 
String[] letters = word.split("");
String res = "";
Word w = new Word();
String letter = word.substring(0, 1);
for (int i = 0; i < array.length; i++) 
String pattern = array[i];
if (letter.equalsIgnoreCase(pattern)) 
res += i;
break;


w.setContent(word);
w.setIndexNum(Integer.parseInt(res));
return w;


private class Forward implements Comparator 
@Override
public int compare(Object arg0, Object arg1) 
Word w1 = (Word) arg0;
Word w2 = (Word) arg1;
int flag = w1.getIndexNum() - w2.getIndexNum();
return flag;



private class Back implements Comparator 
@Override
public int compare(Object arg0, Object arg1) 
Word w1 = (Word) arg1;
Word w2 = (Word) arg0;
int flag = w1.getIndexNum() - w2.getIndexNum();
return flag;




class Word 
private String content;

private Integer indexNum;

public String getContent() 
return content;


public void setContent(String content) 
this.content = content;


public Integer getIndexNum() 
return indexNum;


public void setIndexNum(Integer indexNum) 
this.indexNum = indexNum;


参考技术A 用list集合试试。list集合是里放的是有顺序并且重复的东西。。 参考技术B java中把排序查找等一系列算法都封装再一个叫collections的类里面有了,所以你把输入的字母存在数组或其他集合中,然后直接一句collections.sort();就排好了,你参考javaAPI中对这个类的详解会更吃惊的,呵呵呵 参考技术C ASC码是按字母序的 所以你可以用asc码来排序

以上是关于java用map把list中首字母相同的单词放在一起的主要内容,如果未能解决你的问题,请参考以下文章

java题:把一个map放在list里,怎样再把它拿出来

java中哪些首字母需要大写

java题:把一个map放在list里,怎样再把它拿出来

CSDN|每日一练编码

CSDN|每日一练编码

java中怎样把输入的基本英文单词按首字母顺序排列?