集合框架总结
开篇废话
后补…..
提要
List Set Map
(What)是什么?
(How)怎么用?
一个小的应用(随便一个字符串算出字符的频度删除重复的字符).
(No Why)
详细报道
一.解决What和How
我们都知道数组是保存一组对象的最有效方式,但在实际情况中我们往往不知道要存多少对象,抑或需要更复杂且有效的方式储存,这时数组显得如此苍白而无力,而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接口常用的实现类是ArrayList和LinkedList.
<!--[if !supportLists]-->2)
<!--[endif]-->Set
Set 无序且不接受重复对象,(若e1.equals(e2)则e1和e2重复)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);
}
}
分享到:
相关推荐
文件中还提及了Java架构师在学习Java时应当关注的高级主题,例如机器学习和数据库设计。机器学习是计算机科学中的一个分支,它让机器能通过经验自我改进。数据库设计则涉及到数据库系统的规划、模型、模式等方面的...
Java基础知识是编程学习的重要起点,尤其对于初学者来说,掌握好这些内容是构建稳固的编程基础的关键。本教程主要围绕“Java基础知识简介”展开,包括Java语言概述、课程架构、Java SE结构、常用命令操作、语言特性...
Java基础知识大总结涵盖了Java编程语言的核心概念和结构,为初学者提供了一个全面的参考资料。下面将详细解析这些知识点: 1. JVM、JRE和JDK的区别: - JVM(Java Virtual Machine)是Java虚拟机,它是Java程序跨...
《Java工程师修炼之道》是一本旨在帮助Java开发者深入理解Java知识体系、巩固架构基础的书籍。通过对本书内容的梳理,我们可以发现它涵盖了多个关键的知识点,这些知识点是每一位Java工程师在提升技能、优化实践过程...
以上知识点在"JAVA知识点总结思维导图(xmind)"中可能以思维导图的形式详细展开,包括每个主题的子话题和相关实例,帮助学习者系统地理解和掌握Java编程。通过深入学习和实践这些知识点,可以成为一名熟练的Java...
【JAVA基础知识总结】 Java是一种由Sun Microsystems公司(现已被Oracle公司收购)的James Gosling等人于1991年开发的面向对象的编程语言,最初名为Oak,后来在1994年更名为Java。Java以其“一次编写,到处运行”的...
这份"java 基础知识课件"涵盖了学习Java编程所需的基础概念和技能。 1. **Java语法基础**: Java的语法与C++相似,但更简洁。它包括变量声明、数据类型(如整型、浮点型、字符型和布尔型)、常量、运算符以及流程...
标题中的知识点为“java零基础知识”,这一部分涉及到的知识点主要包括Java语言的基本构成要素以及其开发环境的搭建。Java语言是一种面向对象的编程语言,它具有许多与初学者入门相关的基础知识点,例如:JDK和JRE的...
1. **Java基础知识** - 类与对象:Java中的所有程序都是由类构建的,对象则是类的实例。理解封装、继承和多态是Java OOP(面向对象编程)的基础。 - 异常处理:Java提供了try-catch-finally结构来处理程序运行时...
本文将围绕Java架构体系的学习线路图进行详细介绍,旨在帮助读者系统性地理解并掌握Java技术体系。 #### 二、常见模式与工具 **1. 设计模式** 设计模式是软件工程中的重要组成部分,能够帮助开发者高效地解决问题...
一、基础知识 1. **JAVA语法**:理解基础的JAVA语法规则,包括数据类型、运算符、流程控制(如if-else,switch,循环)和异常处理。 2. **面向对象编程**:掌握类、对象、继承、封装、多态等核心OOP概念。 3. **集合...
Java基础知识总结 Java是一种广泛使用的编程语言,具有强大、灵活和平台独立的特点。以下是Java基础知识的总结,包括Java目录、编程习惯、基本类型、控制语句、运算符、数组等方面的知识点。 Java目录 Java是一种...
1. **基础语法与编程技巧**:这是Java学习的起点,包括类、对象、封装、继承、多态等面向对象的概念,以及异常处理、IO流、线程、集合框架等基础知识。 2. **设计模式**:熟练掌握各种设计模式如单例、工厂、装饰器...
Java知识框架是一个全面概述Java编程语言核心概念和结构的...以上知识点构成了Java知识体系的基础框架,通过深入学习和实践,你可以逐步掌握Java编程的核心技能。对于初学者来说,理解并熟练运用这些概念是至关重要的。
JAVA相关基础知识广泛涵盖了面向对象编程的核心概念、Java语言的特有元素以及一些常用类库的使用与区别。以下是详细的解析: 面向对象编程的四大特征包括抽象、继承、封装和多态性。抽象是指通过忽略非关键细节而将...
1. **Java基础知识**:作为系统架构的基础,Java语言的语法、面向对象编程原则、异常处理、多线程、集合框架等是必不可少的知识。理解并熟练运用这些基础概念,能为构建高效稳定的系统打下坚实的基础。 2. **JVM...
【Java基础知识概述】 Java是一种由Sun Microsystems公司(后被甲骨文公司收购)的James Gosling等人于1991年开发的面向对象的编程语言,最初名为Oak,后于1994年更名为Java。Java的核心理念是“Write Once, Run ...
Java基础知识是编程学习的核心部分,本节主要涵盖了Java的基础概念,包括J2SE体系、数据类型、变量、常量以及变量赋值规则等关键知识点。 首先,J2SE(Java Standard Edition)是Java平台的标准版,它包含了进行...
6. **异常处理**:异常分类(检查性异常和运行时异常),如何进行try-catch-finally处理,理解throw和throws关键字的使用,掌握自定义异常。 7. **IO流**:理解字节流和字符流,掌握InputStream/OutputStream和...
学习新技术时,应按照描述中提到的四点:了解技术的本质、关注其特点和使用注意事项、通过实例(demo)进行实践、并在适当场景(test)中应用。这四个步骤有助于系统地掌握新的Java技术和框架,从而提升编程技能和...