`
where
  • 浏览: 80763 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JAVA基础知识之我的理解6(集合架构的一点分享,学习进行时)

阅读更多

集合框架总结

开篇废话

后补…..

提要

List        Set       Map

(What)是什么?

(How)怎么用?

一个小的应用(随便一个字符串算出字符的频度删除重复的字符).

(No Why)

详细报道

.解决WhatHow

我们都知道数组是保存一组对象的最有效方式,但在实际情况中我们往往不知道要存多少对象,抑或需要更复杂且有效的方式储存,这时数组显得如此苍白而无力,JAVA实用类提供的完整的容器类恰好能完美解决这一问题,其中的基本类型是:List,Set,Map以及Queue.( List,Set,Map就此入场)

(补充:Java的容器类位于Java.util包中)

下面我们来解决”What”,”How”这个问题

List ,Set, Map是三个常用的集合在系统中定义的接口,每种集合可以理解成为用来存放某种对象的容器.就像我们熟悉的数组.

  List ,Set, Map三者的特点:

<!--[if !supportLists]-->1)      <!--[endif]-->List

List也能像数组一样建立数字索引与对象的关联,表达数据结构中线性表的概念,List的主要特征是其元素以线性方式存储,且允许存放重复对象.List接口常用的实现类是ArrayListLinkedList.

<!--[if !supportLists]-->2)    <!--[endif]-->Set

Set 无序且不接受重复对象,(e1.equals(e2)e1e2重复)Set常被用于测试归属性.常用的实现类为HashSet,TreeSet.

<!--[if !supportLists]-->3)    <!--[endif]-->Map

Map(映射)是把键对象和值对象进行映射的集合,它的每一个元素都包含键对象和值对象.,Map容器检索元素时,只要给键对象就会返回值对象,每个键最多可以映射一个值,但每个值可以被多个键映射.这一点会在下面的具体小应用中得到体现.

当然三者还有很多方法,在这就不一一赘述,JDK写的很清楚.下面就借着一个小应用简单的看看用法.

.小程序

程序目标:1)对随便一个字符串(例如”fdsfdsfewffqfefggtrtwrtheq”)去除重复字符.

2)整理出每隔字符出现的频度

  设计思路:我们先要把字符串转型为字符型并存如一维数组中,接下来就用到今天的知识,我们现在知道Map(映射)是把键对象和值对象进行映射的集合,它的每一个元素都包含键对象和值对象.,Map容器检索元素时,只要给键对象就会返回值对象,每个键最多可以映射一个值,但每个值可以被多个键映射.那么我们可以用键对象存放数组元素,值对象用来计数这样就可以完成对频度的统计.(具体实现见代码).

  详细代码:

   //判断字符频度并打印

public class map {

    public static void main(String[] args){

       String str="fsadfdsafefefeferwfg";

       char[]c=str.toCharArray();

       int i=c.length-1;

       HashMap<Character, Integer> map = new HashMap<Character, Integer>();

       map.put(c[0], 1);

       //判断字符频度并打印

       for(int j=1;j<=i;j++){

           //如果字母存在,则加1

           if(map.containsKey(c[j])){

              Integer k =map.get(c[j]);

              map.put(c[j],++k);

           }

           else

           //如果字母不存在则加入  

           map.put(c[j], 1);

       }

       System.out.println(map);

   

    }

}       

//********************去重**********************\\

public class map2 {

    static Integer k;

    static int x;

    public static void main(String[] args){

       String str="fsadfdsafefefeferwfg";

       char[] c=str.toCharArray();

       int i=c.length-1;

       HashMap map = new HashMap();

        map.put(c[0], 1);

      

       for(int x=1;x<=i;x++){

           if(!map.containsKey(c[x])){

              map.put(c[x], 1);

           }     

       }

        System.out.println(map);

    }

}

 

0
4
分享到:
评论

相关推荐

    JAVA核心知识点整理(有效)

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【基础】java多态的理解 13 【基础】transient关键字 15 【基础】访问修饰符区别 15 【基础】java基本数据类型(四类八种) 15 Java自动类型转换 16 数据类型自动提升(注意以下讨论的是二元操作符) 16 【基础】...

    大数据基础知识入门.pdf

    大数据基础知识入门 社会保障事业部 张火磊 主要内容 大数据价值 03 大数据概念、特性、由来 01 大数据应用举例 04 02 Hadoop技术介绍 大数据概念、特性、由来 什么叫大数据? 麦肯锡全球研究所给出的定义是:一 种...

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    Java经典入门教程pdf完整版

    括了Java运行坏境,一系刎Java开发工具和Java基础的类库。目前主流的JDK是Sun公 同发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JD,例如IBM公司开 发的JD,BA公司的 Jrocket,还有GN组织丌发的JDK等等。 ...

    c#学习笔记.txt

    另外我发现论坛上学习Java的人都非常的有个性,当有人问起学习哪种语言更好时,他会打出几百个“JAVA”来,填满整个屏幕,也不说是为了什么。我觉得这样做未免有些太霸道了,如果你说这叫偏执狂我也不反对,虽然我...

    asp.net知识库

    事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle...

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    visual c# 2010新增了大量可圈可点的丰富特性,本书围绕着基础知识和这些新特性全面介绍了如何利用visual studio 2010和.net framework 4.0编写应用程序。书中沿袭深受读者欢迎的step by step风格,通过丰富的练习...

    Grails 技术精解与Web开发实践【源码+样章】----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    8.1.1 Grails Layout的基础知识 100 8.1.2 为系统后台管理创建 统一的decorator 103 8.2 文件上传的实现 107 8.2.1 开发表单页面 107 8.2.2 在Controller中接收文件 108 8.3 修改订单状态 109 8.4 本章小结 110 第9...

    C#微软培训资料

    2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 ...

    iBATIS实战

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    2.1 Oracle架构基础 25 2.2 SGA-共享池 27 2.3 库高速缓存 28 2.4 完全相同的语句 29 2.5 SGA-缓冲区缓存 32 2.6 查询转换 35 2.7 视图合并 36 2.8 子查询解嵌套 39 2.9 谓语前推 42 2.10 使用物化视图...

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    通过本课程的学习,为学员以后开发使用JEasyui与后台Java框架技术结合的大型Java项目提供了完整示范,奠定基础 2.3、课程特色 特点一、讲师具有一线的实战经验与丰富的教学经验,课程即讲解案例实现思路、...

    GoodProject Maven Webapp.zip

    6、NLP知识库的功能介绍: NLP知识库是基于图灵中文语义认知计算技术的智能知识库模图灵机器人平台块,具有准确率高,操作简单的特点,通过该模块,平台用户及开发者可批量导入垂直领域的业务问答知识,让机器人快速...

    PLSQLDeveloper下载

    PL/SQL Developer允许您在某些特定的条目集合范围之内进行工作,而不是在完全的数据库或架构之内。这样,如果需要编译所有工程条目或者将工程从某个位置或数据库移动到其他位置时,所需工程条目的查找就变得比较简单...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...

Global site tag (gtag.js) - Google Analytics