JAVA中TreeMap集合筛选字母及每一个字符出现的次数

利用TreeMap对字符串进行排序

题目要求:

给出一个字符串:fjdjskgfhbsjkgjnsrgnaHNGKEURHGASLGNw5y74236720573。

要求:

  1. 化成字符串a(字符的个数)b()c()...
  2. 区分大小写
  3. 只读取字母

直接上代码:

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集合的特点

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

欢迎补充。。。

原文地址:https://www.cnblogs.com/caozyblogs/p/12177723.html

时间: 2024-10-08 09:37:50

JAVA中TreeMap集合筛选字母及每一个字符出现的次数的相关文章

java中的集合操作类(未完待续)

申明: 实习生的肤浅理解,如发现有错误之处,还望大牛们多多指点 废话 其实我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList<XXXXX>(); 但是我仅仅只是了解,list这个类是一个可变长用来存储的对象实例的类,我甚至觉得这个List对象可以理解成数组,但是却又与java中咱们正常理解的数组很多的不同,比如说,他的长度可以随着需要自动增长,比如说,实例化一个List类就和咱们声明数组的时候是不一样的! 今天的实习生活

java中TreeSet集合如何实现元素的判重

1 /* 2 看一下部分的TreeSet源码.... 3 public class TreeSet<E> extends AbstractSet<E> 4 implements NavigableSet<E>, Cloneable, java.io.Serializable 5 { 6 private transient NavigableMap<E,Object> m; 7 //NavigableMap继承SortedMap, 二者都是接口,在TreeMa

java中各种集合的用法和比较

一,java中各种集合的关系图 Collection       接口的接口     对象的集合 ├ List             子接口         按进入先后有序保存   可重复 │├ LinkedList    接口实现类     链表     插入删除   没有同步   线程不安全 │├ ArrayList     接口实现类      数组     随机访问   没有同步   线程不安全 │└ Vector        接口实现类       数组              

Java中的集合框架-Map

前两篇<Java中的集合框架-Commection(一)>和<Java中的集合框架-Commection(二)>把集合框架中的Collection开发常用知识点作了一下记录,从本篇开始,对集合框架里的另外一部分Map作一下记录. 一,集合框架的Map接口 Map与Collection不同之处在于它是以键值对来存储数据: Map比较常用的实现类有四个:HashTable,HashMap,LinkedHashMap,TreeMap: Map的方法也可以分为四类,增删改查,大致如下: 新

java中的集合框架

由于数组具有属性单一,长度不可改变的缺点,于是在程序中我们使用集合来代替它. 集合中不可放入基本数据类型,基本数据类型都是通过自动拆包和自动装箱功能才能放入和取出集合. 分类:Collection接口和Map接口 Collection:存放单一值元素,又可分为list接口类型和set接口类型 list接口类型:存放元素是有序的可重复的,可通过循环来取出其中的元素,实现类ArrayList() set接口类型:hash值排列,存放元素是无序不可重复的,通过指针取出其中元素,实现类HashSet()

菜鸟日记之 java中的集合框架

java中的集合框架图 如图所示:java中的集合分为两种Collection和Map两种接口 可分为Collection是单列集合和Map的双列集合 Collection单列集合:继承了Iterator接口所以具有了iterator()方法 ,该方法返回一个Iterator<T>,这个接口具有 HasNext (),next(),remove()3个方法可以在实现类里完成实现. hasNext():判断是否有下一个元素 cusor是当前的操作下标 next():读取下一个元素 remove(

java中list集合的内容,如何使用像数据库中group by形式那样排序

java中list集合的内容,如何使用像数据库中group by形式那样排序,比如:有一个 List<JavaBean> 他中包含了一些如下的内容JavaBean:name    money(名称)  (金额) 来源A   100来源B   200来源C   300来源B   6600来源A   99800<数据1> 最后想实现的是:如果假设这些数据在数据库中,那么通过 select name,sum(money) from Table group by name 该语句得到的Li

Java中的集合框架(上)

Java中的集合框架概述 集合的概念: Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象. 集合的作用: 1.在类的内部,对数据进行组织: 2.简单的快速的搜索大数据量的条目: 3.有的集合接口,提供了一系列排列有序的元素,并且 可以在序列中间快速的插入或删除有关的元素. 4.有的集合接口,提供了映射关系,可以通过 关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型. 与数组的对比一为何选择集合而不是数组 1.数组的长度固定,集合长度可变 2.数

Java 中的集合接口——List、Set、Map

Java 中的集合接口——List.Set.Map 什么叫集合:集合就是Java API所提供的一系列类的实例,可以用于动态存放多个对象.这跟我们学过的数组差不多,那为什么我们还要学集合,我们看看数组跟集合有什么区别: 数组:长度固定,遍历速度快 可以存储基本类型和引用类型: 集合:长度不固定,只能存储引用类型对象: 从数组跟集合的特点我们很明显的看出,数组有一定的局限性,如果我们需要不定期的往我们的数据中存储数据,数组就满足不了我们的要求. Java集合框架提供了一套性能优良.使用方便的接口和