`
ouyida3
  • 浏览: 50077 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java与c++的map使用比较

 
阅读更多

java和c++都有map,java的Map是接口,M大写;c++的map是实现好的类,m小写。

所以java一般需要使用HashMap,c++使用map。

 

c++的定义与设值:

#include <map>

map<string, int> inMap;

inMap.clear();

inMap.insert(make_pair("chargeId", 1));

 

java的定义与设值:

import java.util.HashMap;

import java.util.Map;

Map map = new HashMap();//jdk1.4或以前

Map<String,Integer> map = new HashMap<String,Integer>();//jdk1.5或以后

map.put("chargeId", 1);

 

map是STL里,需要include<map>。java在new的时候已经清空的内存,所以不需要c++这么麻烦的clear。

c++的insert和java的put差不多,但是c++需要麻烦的调用make_pair把键值对转化为一个结构体。

c++的map支持基本类型,但是java的是不支持的,只能用Integer,不能用int,put的时候只是自动装箱转化为Integer而已。

 

c++的取值:

map<string, int>::iterator it = inMap.find("chargeId");

int mapValue = 0;

if (it != inMap.end())

{

mapValue = it->second;

}

 

java的取值:

Integer i = map.get("chargeId") == null ? 0 : map.get("chargeId");//jdk1.5或以后

 

c++的取值真心麻烦啊,写这么多行代码。java的优雅就是这么来的。

c++的find相当于java的get,但是c++必须返回一个迭代器,你需要通过迭代器来判断获取。

结构体里也定义好了first和second,你想获取哪个就哪个。

而java把全部的获取都做好了,你只需要get一下。如果没有,则返回null。java的基本类型不能为null,所以不支持基本类型。

 

分享到:
评论

相关推荐

    Java与C++的比较

    Java与C++的比较,首先需要从各自的语言特性开始说起。 Java是一种高级编程语言,它强调跨平台的可移植性,即“一次编写,到处运行”。Java的语法类似于C++,但Java虚拟机(JVM)的存在,使得Java程序的执行可以...

    JAVA与C++比较.pdf

    标题和描述中并未提供足够的信息来确定具体的文件内容,但是从提供的【部分内容】中,我们可以提取出一些关于JAVA和C++的比较的知识点。这些知识点主要涉及到JAVA和C++的历史、特性、语法规则、功能和应用等方面。 ...

    C、C++、JAVA数据结构与算法电子书

    C、C++和Java都是广泛使用的编程语言,它们在处理数据结构和算法时各有特点。以下是对这三种语言在数据结构与算法方面的一些关键知识点的详细阐述: 1. **数据结构**: - **数组**:基本的数据结构,用于存储同...

    A*算法Java/C++实现

    在C++中,可以使用STL容器如vector和map来实现这些数据结构;而在Java中,可以使用ArrayList和HashMap等。 接下来,我们需要实现主要的算法步骤: 1. 初始化开放列表(未探索节点)和关闭列表(已探索节点),并将...

    java C++ 书籍收藏

    - 异常处理:C++使用try、catch和finally关键字来处理运行时发生的异常。 2. 析构函数和构造函数 - 析构函数用于在对象生命周期结束时进行清理工作,C++中的类默认具有无参的析构函数。 - 构造函数用于创建对象...

    C/C++程序员java编程

    这本书详细介绍了Java语言的特点、语法以及与C/C++的不同之处,旨在让程序员能够快速掌握Java的核心概念和技术。 首先,书中会深入探讨Java语言的基础,包括其面向对象的特性。Java与C++一样,都是面向对象的语言,...

    Java学习笔记及其与C++的比较

    ### Java学习笔记及其与C++的比较 #### Java特性 **1.1 语法与词汇** Java采用类似于C++的语法结构,但简化了很多复杂的语言特性。例如,Java摒弃了指针,使得内存管理更加安全可靠。同时,Java通过自动垃圾回收...

    面试题大全(c,java,c++)

    在IT行业中,面试是检验求职者技能和知识的关键环节,特别是在C、Java和C++这样的编程语言领域。这些语言在软件开发中占据了重要的地位,因此掌握它们的基本概念、语法特性和高级特性对于开发者来说至关重要。这份...

    利用Java的HashMap 改造C++ 的hash_map

    结合Java的HashMap中的一些优点,改进了C++ 的hash_map。 详细说明见我的博客:http://blog.csdn.net/mdj67887500/article/details/6907702

    迅雷Java和C++面试题

    根据给定文件的信息,我们可以推断出这是一份关于迅雷公司在2008年实习生招聘中的面试题目集合,主要涉及C++和Java两大编程语言。尽管具体的面试题目没有给出,但我们可以根据C++和Java这两门语言的特点,以及通常在...

    java、c++、软件测试面试题

    2. **C++高级特性**:深入理解STL(标准模板库),如vector、list、map等容器,以及迭代器的使用。了解模板、虚函数、抽象类、多态性。 3. **异常处理**:理解C++的异常处理机制,何时及如何使用try-catch-finally...

    JAVA C++ 淘宝阿里巴巴 腾讯等公司近年笔试题

    1. **C++基础**:与JAVA类似的基础语法,如指针、引用、构造函数等。 2. **面向对象**:C++支持类、对象、继承、多态,但比JAVA更底层,可以实现模板和虚函数。 3. **STL(标准模板库)**:容器(如vector、list、...

    华为C++与JAVA面试笔试题

    3. **STL(标准模板库)**:STL包含容器(如vector、list、set、map等)、迭代器、算法和函数对象,是C++中不可或缺的部分。熟悉STL的使用能提高代码效率和可读性。 4. **异常处理**:理解何时和如何使用try-catch...

    java和C++中兴笔试题

    Java和C++是两种在IT领域广泛应用的编程语言,它们各有特点,且在软件开发中都有各自的适用场景。中兴公司的笔试题可能涉及到这两门语言的基础知识、语法特性、编程技巧以及高级概念等多个方面。 首先,Java是一种...

    迅雷招聘(java,c++)

    【标题】:“迅雷招聘(java,c++)”所涉及的知识点主要涵盖了Java和C++这两门编程语言,这是在迅雷公司针对校园招聘而设置的技术面试题目,旨在考察求职者的编程基础和问题解决能力。 【Java】部分: 1. **Java...

    软件测试,java/c++面试题总结

    在软件开发领域,测试是确保产品质量的关键环节,而Java和C++作为两种广泛使用的编程语言,它们在面试中经常被提及。本篇文章将对软件测试、Java和C++的面试题进行深度剖析,帮助求职者更好地准备面试。 一、软件...

    面试题汇总(java c c++)

    在IT行业中,面试是检验求职者技能和知识的关键环节,特别是在Java、C和C++这三个广泛使用的编程语言中。这份“面试题汇总”涵盖了这些语言的核心概念和技术,旨在帮助求职者准备并理解面试官可能提出的问题。下面...

    c,c++,java笔试题大全

    在IT行业中,编程语言是构建软件的基础,C、C++和Java是三种极其重要的编程语言。这份名为“c,c++,java笔试题大全”的压缩包文件显然为求职者提供了丰富的学习和准备资源,帮助他们应对涉及这三种语言的面试或笔试...

    B+ tree的java实现和C++实现

    而C++实现中,可以使用STL容器,如std::vector或std::map,作为节点的基础数据结构。 在Java和C++中,都需要考虑内存管理和性能优化。Java的垃圾回收机制可以自动处理内存,但在高并发环境下,可能需要关注锁的使用...

    金山软件11月14号清华 - 2014校招笔试题 - java和C++

    3. **集合框架**:ArrayList、LinkedList、HashMap、HashSet等容器的理解与使用,以及集合操作相关的算法问题。 4. **异常处理**:如何正确地捕获和处理运行时异常,理解finally块的作用。 5. **多线程**:线程的...

Global site tag (gtag.js) - Google Analytics