当前位置: 首页 > 编程笔记 >

JAVA使用TreeMap对字符串进行排序

宓博实
2023-03-14
本文向大家介绍JAVA使用TreeMap对字符串进行排序,包括了JAVA使用TreeMap对字符串进行排序的使用技巧和注意事项,需要的朋友参考一下

这篇文章主要介绍了JAVA使用TreeMap对字符串进行排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

题目要求:

给出一个字符串:fjdjskgfhbsjkgjnsrgnaHNGKEURHGASLGNw5y74236720573。

要求:

化成字符串a(字符的个数)b()c()...

区分大小写

只读取字母

直接上代码:

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
​
/**
 * @Author caozy
 * @Date 2020/1/10 18:18
 * @Version 1.0
 */
public class TestTreeMap {
  public static void main(String[] args) {
    //treemap 自动对key排序 格局map的特点,键无序
    //键用来存储字母,值用来存储字母出现的次数
    Map<Character, Integer> treeMap = new TreeMap<>();
    String str = "ngksfdghnsFNSDLIGNRSLGN57349856734856";
    Set<Character> set = treeMap.keySet();
    for(int i=0;i<str.length();i++){
      Character st = str.charAt(i);
      //根据ASCII值筛选出所有的字母
      if((st>='a' && st<='z')||st>='A' && st<='Z'){
        //立一个flag标识
        boolean flag = true;
        for(Character ch:set){
          if(st==ch){//第一次添加该元素  个数为1
            treeMap.put(ch,treeMap.get(ch)+1);
            flag=false;
          }
        }
        if(flag){//不是第一次添加,个数加1
          treeMap.put(str.charAt(i),1);
        }
      }
    }
    for(Character ch:set){//根据题目要求遍历treemap集合
      System.out.print(ch+"("+treeMap.get(ch)+")");
    }
​
  }
}

TreeMap集合的特点

  • 一个基于红黑树的实现
  • jdk1.2开始
  • 自动排序

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 我的代码中有什么错误? 给定一个由小写字母组成的字符串,请按升序排列其所有字母。 输入:输入的第一行包含T,表示测试用例的数量。然后是每个测试用例的描述。测试用例的第一行包含表示字符串长度的正整数N。第二行包含字符串。 输出:对于每个测试用例,输出排序后的字符串。 约束条件: 对于输入: 输出: 预期输出:

  • 问题内容: 我正在尝试查找给定字符串的排列,但是我想使用迭代。我在网上找到了递归解决方案,但我确实理解它,但是将其转换为迭代解决方案实际上是行不通的。下面附上我的代码。我非常感谢您的帮助: 问题答案: 在我的相关问题评论之后,这是一个Java实现,可以使用Counting QuickPerm Algorithm 来完成您想要的事情:

  • 我正在尝试编写一个程序,根据列表中最不频繁的字符排列字符串列表。例如,如果列表是,列表中的字母频率将是a-5,n-3,p-2,e-2,l-1,o-1,r-1,g-1,b-1。由于橙色包含最不频繁的字母,程序将返回橙色,然后是apple,然后是banana。 到目前为止,我已经编写了按频率排列列表中所有字母的代码。但我需要应用它来找出哪个字符串包含最不频繁的字母。 这是我的代码:

  • 问题内容: 允许用户使用字符串数组进行演奏。他们可以将字符串添加到数组中,从数组中删除字符串,在数组中搜索字符串,最终他们将能够对数组进行排序。排序使我很困惑。我尝试了几种不同的方法。第一种方法是将数组转换为ArrayList并使用Collections对ArrayList进行排序,然后将其转换回静态类数组。没用 我尝试的第二种方法是遍历数组,并尝试仅对用户添加的字符串进行排序,而不是对数组中的所

  • 本文向大家介绍使用TreeMap在Java中对用户定义的对象进行排序,包括了使用TreeMap在Java中对用户定义的对象进行排序的使用技巧和注意事项,需要的朋友参考一下 要在Java中对用户定义的对象进行排序,代码如下- 示例 输出结果 名为Demo的类包含一个名为sort_objects的函数,该函数创建一个将整数和数组列表映射的哈希表。 它遍历这些值,并检查哪个是字符串,哪个是整数元素,并根

  • 我试图使用PriorityQueue对字符串列表进行排序并删除重复项。最初我使用PriorityQueue,它不会更改顺序。我换了树集后,它起作用了。但是,我想了解优先级队列和定义比较器的问题是什么。想听听解释。