Java中Map和Vector集合

面试题:vector和map的区别,异同。空间分布,100万数据存哪个比较合适。 文章目录一、 迭代器区别二、vector三、Map、Set四、vector_map 为什么比map效率高五、如何选择六、容器选择原则七、效率对比 一、 迭代器区别 ①vector为顺序容器,erase迭代器不仅使所有指向被删元素的迭代器失效,而且使被删元素之后的所有迭代器失效,所以不能使用erase(iter++)的方式,但是erase的返回值为下一个有效的迭代器:可以这样使用: for( iter = c.begin(); iter != c.end(); ) iter = c.erase(iter); 阅读详情

Map集合

map集合的使用

package com.cloud.map;

import java.util.HashMap;

import java.util.Map;

public class Demo1 {

/*

   双列集合:

   Map:实现Map接口的集合类,具备的特点:存储的数据都是以键值对的方式,键不可以重复,值可重复

*/

   public static void main(String[] args) {

      Map<String,String> map = new HashMap<String,String>();

      map.put("1", "aaa");

      map.put("2", "bbb");

      map.put("3", "ccc");

      /*添加常用的方法

      //这里返回null:表示4这个键以前没有关联的值

      System.out.println(map.put("4", "ddd"));

      //这里输出关联的值ddd,会被abc覆盖

      map.put("5", "abc");

      System.out.println(map.put("4", "abc"));

      Map<String,String> map2 = new HashMap<String,String>();

      map2.put("6", "eee");

      map2.put("1", "aaa");

      map2.put("1", "ert");

      map.putAll(map2);

      */

      /*删除数据常用的方法

      System.out.println("删除的数据:"+map.remove("1"));

      map.clear();

      */

      /*获取方法

      System.out.println(map.get("1"));

      System.out.println(map.size());

      */

      /*判断的方法

      System.out.println(map.containsKey("1"));

      System.out.println(map.containsValue("aaa"));

      map.clear();

      map.put(null, null);

      System.out.println(map.isEmpty());

      */

      System.out.println("集合元素:"+map);

   }

}

HashMap的使用

package com.cloud.map;

import java.util.HashMap;

import java.util.Map;

public class Demo2 {

/*

HashMap

   底层使用hash表来实现

   向HashMap中添加元素的时候,首先调用键的hashCode方法得到元素的哈希码的值,经过运算,得

   到该元素在哈希表中的位置;

   1.如果该位置没有存储元素,则元素之间添加到哈希表中

   2.如果该位置有其他的元素,会调用元素的equals方法,如果返回false,该元素被储存,返回

     true,该元素重复不能存储

*/

   public static void main(String[] args) {

      Map<Person,String> map = new HashMap<Person,String>();

      map.put(new Person(1,"a"), "aaa");

      map.put(new Person(2,"b"), "bbb");

      map.put(new Person(3,"c"), "ccc");

      map.put(new Person(1,"a"), "ddd");

      System.out.println("集合的元素:"+map);

   }

}

class Person{

   private int id;

   private String name;

   public Person(int id,String name){

      this.id=id;

      this.name=name;

   }

   @Override

   public String toString() {

      return "[编号:"+this.id+";姓名:"+this.name+"]";

   }

   @Override

   public int hashCode() {

      // TODO Auto-generated method stub

      return this.id;

   }

   @Override

   public boolean equals(Object obj) {

      Person p=(Person) obj;

      return this.id==p.id;

   }

}

TreeMap的使用

package com.cloud.map;

import java.util.Comparator;

import java.util.TreeMap;

public class Demo3 {

/*

TreeMap:基于二叉树的数据结构实现的,会对具备自然特性的键进行排序存储

1.元素的键具备自然特性,直接排序存储

2.不具备自然特性,实现Comparable接口,在ComparaTo中定义排序规则

3.不具备自然特性,没有实现Comparable接口,在创建TreeMap对象的时候传入比较器

 */

   public static void main(String[] args) {

      //创建一个比较器

      MyComparator my=new MyComparator();

      TreeMap<Emp,String> map=new TreeMap<Emp,String>(my);

      /*map.put('c', 3);

      map.put('b', 2);

      map.put('a', 1);*/

      map.put(new Emp("a",5000), "6");

      map.put(new Emp("b",4000), "5");

      map.put(new Emp("c",3000), "4");

      map.put(new Emp("d",2000), "3");

      //下面e的值1就会覆盖d的值3

      map.put(new Emp("e",2000), "1");

      System.out.println(map);

   }

}

class Emp /*implements Comparable<Emp>*/{

   String name;

   int sarlary;

   public Emp(String name,int sarlary){

      this.name=name;

      this.sarlary=sarlary;

   }

   @Override

   public String toString() {

      return "[姓名:"+this.name+";薪水:"+this.sarlary+"]";

   }

   /*@Override

   public int compareTo(Emp o) {

      return this.sarlary-o.sarlary;

   }*/

}

//自定义一个比较器

class MyComparator implements Comparator<Emp>{

   @Override

   public int compare(Emp o1, Emp o2) {

      return o1.sarlary-o2.sarlary;

   }

}

Vector集合

package com.cloud.vector;

import java.util.Enumeration;

import java.util.Vector;

public class Day1 {

   /*

   Vector 底部维护Object数组,实现和ArrayList一样,但是Vector是线程安全,效率低,二者比较:

   相同点:

      1.底部都是维护Object的数组

   不同点:

      1.ArrayList线程不同步,效率高

      2.ArrayList JDK1.2出现,Vector JDK1.0出现

   */

   public static void main(String[] args) {

      Vector v=new Vector();

      v.addElement("Spring1");

      v.addElement("Spring2");

      v.addElement("Spring3");

      Enumeration e = v.elements();

      while(e.hasMoreElements()){

        System.out.println(e.nextElement());

      }

   }

}


Java中List、ArrayList、Vector及map、HashTable、HashMap分别的区别. 立即下载

相关推荐

abaqus 根据坐标施加载荷- Analytical Field 载荷映射

在一些类型的分析中,需要将按位置分布的载荷施加到结构上,比如流体分析导出了结构的气动载荷、或者温度载荷,需要将压强分布、温度分布载荷施加到固体上。这种分析可以使用abaqus中的Analytical Field实现。 1 例子 1.1 结构 一个100*100mm的面,面的载荷分布函数为p=(x2+y2)0.5/((20.5)*100) MPa,即(0, 0)的压强为0,(100, 100)的压强为1。 1.2 载荷 载荷函数:p=(x^2+y^2)^0.5/((2^0.5)*100) in exce.

shengyutou的博客 2万+

0基础学java之Day25(Vector、Set接口、Map接口、Properties)

1.获取元素的hash值 -- hashCode() ​ 2.利用hash值计算在数组中下标 ​ 3.判断下标上是否有元素 ​ 3.1 - 没有元素,直接添加 ​ 3.2 - 有元素,判断两个元素是否相同 ​ 判断的准则:hash值 && (== || equals) ​ 3.2.1 - 不相同,添加数据,形成单向链表 ​ (JDK1.7-头插法,JDK1.8尾插法) ​ 3.2.2 - 相同,就不添加数据 -- 达到去重的效果 ​ 取出顺序:数组顺序。内置比较器:适用于类的自然排序或默认排序。

2301_81594623的博客 598

游戏安全逆向实战:如何用010Editor绕过ACE反作弊的文件校验(附详细步骤)

本文详细介绍了如何通过逆向工程思维和010Editor工具,针对PC游戏中ACE反作弊系统的文件校验机制进行分析与绕过。文章以实战案例为核心,逐步拆解了定位校验逻辑、解析校验数据文件、计算并替换哈希值的关键步骤,为安全研究人员提供了一种在用户态(Ring 3)层面进行轻量化对抗的思路与方法。

iii12的专栏 725

JAVA学习5-链表、泛型、Map、Vector、二叉树

41.链表LinkedList

y_w_x_k的博客 976

某知名系统漏洞挖掘与利用思路探索

本文以安全研究为目的,分享对该套系统的代码审计和漏洞挖掘过程,文中所提到的漏洞均已提交给CNVD&CITIVD,请勿用做非法用途。

C20220511的博客 1904

【Python实战解析】从数据爬取到房价预测:一个完整的数据科学项目流程拆解

本文详细拆解了一个完整的Python数据科学项目流程,从爬取长沙二手房数据到房价预测模型构建。通过实战案例,介绍了数据爬取、清洗、可视化及模型优化的关键技巧,帮助开发者掌握Python在数据分析中的应用,提升程序开发能力。

weixin_30379531的博客 411

java二维数组转Map

此处的ArrayUtils引用自org.apache.commons.lang3.ArrayUtils;,确保你的项目中有相关依赖即可

资浅程序媛,个人公众/头条/百家号:郑州小闲人,关注权限已向你开放 1113

中微8S6990外设开发实战:从GPIO配置到低功耗休眠的完整指南

本文提供了中微8S6990增强型8051单片机从GPIO配置到低功耗休眠的完整实战指南。详细讲解了开发环境搭建、GPIO灵活配置、定时器中断、ADC采样优化、PWM电机控制等核心外设的编程要点与避坑技巧,并重点阐述了实现超低功耗休眠的系统性外设管理策略,帮助开发者快速上手并优化产品续航。

weixin_29162439的博客 533

Vector与Map

Map集合map集合的使用package com.cloud.map;import java.util.HashMap;import java.util.Map;publicclass Demo1 {/*   双列集合:   Map:实现Map接口的集合类,具备的特点:存储的数据都是以键值对的方式,键不可以重复,值可重复*/   publicstatic void main(String[] ar...

黎小小的博客 1987

华为OD干了两个月,还是跑了

​本人工作了快13年,base南京。2024年2月份由于公司业务变动第一次拿到了公司发的大礼包,同时也面临着失业的问题,我对自己的技术还是很有信心的,但是,找了大概有一个多月时间,发现心意的工作的确不太好找,当然收到挺多家offer,就是薪资不太满意,外包也一直不想去,不过说实话外包给的薪资普遍要比自研的单位要高一些,最后为了钱还是进华为(既然选择外包那就选择好一些的吧),毕竟中年老男人工作不能断太久。

啊渊的专栏 1万+

ZYNQ BRAM实现PS与PL数据交互

有时CPU需要与PL进行小批量的数据交换,可以通过BRAM模块,也就是Block RAM实现此要求。本章通过Zynq的GP Master接口读写PL端的BRAM,实现与PL的交互。在本实验中加入了自定义的FPGA程序,并利用AXI4总线进行配置,通知其何时读写BRAM。以下为本实验原理图,CPU通过AXI BRAM Controller读取BRAM数据,CPU仅配置自定义的PL BRAM Controller 的寄存器,不通过它读写数据。

baidu_34971492的博客 2276

java map vector_Java中Map和Vector集合

Map集合map集合的使用package pkg2020华南虎;import java.util.HashMap;import java.util.Map;/**** @author yl*//*双列集合:Map:实现Map接口的集合类,具备的特点:存储的数据都是以键值对的方式,键不可以重复,值可以重复。*/public class MapDemo {public static void main...

weixin_39976382的博客 269

Open-Sora代码详细解读(1):解读DiT结构

目前开源的DiT视频生成模型不是很多,Open-Sora是开发者生态最好的一个,涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-Sora的代码出发,深入解读背后的原理。

沉迷单车的追风少年 2264

java map vector_浅谈JAVA集合框架(转载)_常用的Vector和HashMap

原作者滴着:http://www.cnblogs.com/eflylab/archive/2007/01/20/625237.htmlJava提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection classes)。集合在java中非常重要,在讨论之前,先来看几个面试中的经典问题。1 Co...

weixin_28756347的博客 185

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java集合类,List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet),Map集合比较

ArrayList,LinkedList,Vector都属于List List:元素是有顺序的,元素可以重复因为每个元素有自己的角标(索引)  |-- ArrayList:底层是数组结构,特点是:查询很快,增删稍微慢点,线程不同步:A线程将元素放在索引0位置,CPU调度线程A停止,B运行,也将元素放在索引0位置,当A和B同时运行的时候Size就编程了2.   |-- LinkedList:底层使用...

Running_dolphin的博客 2185

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

List集合和Map集合的学习总结

List: ArrayList(高效)数组 查找快 增删慢 线程不安全 Vector(低效) 数组 查找快 增删慢 线程安全 LinkList 双向链表 查找慢 增删快 线程不安全 1、ArrayList、Vector查找快: ArrayList、Vector由于底层是数组实现的,所以查找快,因为是连续存放元素的,找到第一个元素的首地址,再加上每个元素的占据的字节大小就能定位到...

小名同学 21万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Java 集合】List(ArrayList、Vector、LinkedList)、Map(HashMap、HashTable、LinkedHashMap和TreeMap)

一、ArrayList、Vector、LinkedList ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,二者都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快,插入数据慢;Vector由于使用了synchronized方法(如add、insert、remove、set、equals、hashcode等

ECheng3905的博客 397

Java中的集合类解析和一些有深入的面试题

Java集合类解析 List、Map、Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。 Hashtable和HashMap的区别:  1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;  2

逍遥飞鹤的专栏 1万+

java把map值放入vector_Java list、map、set、vector集合类型中的null值

在面向对象语言中,空(Empty)、空值(Null)、不存在(Not Exists)分别具有这不同含义。举个通俗的例子:空表示这个位置是用来放这个东西的,但是这个东西的数量现在是0;Null是一个占位符,表示这个地方我占了,现在没空间给你放东西;不存在表示根本就没有这里地方,更别说放在这里的东西了;面向对象是不是很神奇!其实和我们平常对事物的理解是一样的。因此,空(Empty)、空值(Null)也...

weixin_39943678的博客 258

Java中List、Set、Map集合

ArrayList就是一个动态的数组,LinkedList基于链表的存储结构1)ArrayList查询快、增删慢2)LinkedList查询慢、增删快List集合是有序的,且元素可以重复List接口有 ArrayList(基于动态数组数据结构的实现),LinkedList(基于链表数据结构的实现),Vector 形式:List list = new ArrayList();1)ArrayList基于动态数组数据结构的实现,底层使⽤ Object[ ]存储,适⽤于频繁的查找⼯作,线程不安全。优点:底层数据结构

weixin_73656077的博客 1081

java把map值放入vector_java把map值放入vector

java把map值放入vector[2021-02-01 17:17:12]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐:《PHP视频教list和map的区别是:1、list是存储单列数据的集合...

weixin_33642697的博客 627

什么是集合及集合的应用

1、 集合是Java API所提供的一系列类,可以用于动态存放多个对象。--集合只能存对象2、 集合与数组的不同在于,集合是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。(集合中不能放基本数据类型,但可以放基本数据类型的包装类)3、 集合类可以自动扩容。4、 集合类全部支持泛型,是一种数据安全的用法。Collection接口-定义了存取对象的方法。两个非常常用的子接口:List接口:存放的元素有序且允许有重复的集合接口。Set接口:存放的元素无序不包含重复。

ysbwjby的博客 2751

模块20.Map集合

模块20.Map集合

m0_72900498的博客 981

Java集合List、Set、Map

集合是 java 基础中非常重要的一部分,同样也是 Java 面试中很重要的一个知识点。所以,给王小整理了这篇关于集合的文章。 1、接口继承关系以及实现 集合类存放于 Java.util 包中,主要有 3 种:set、list 和 map。 Collection:Collection 是集合 List、Set、Queue 的最基本的接口 Iterator:迭代器,可以通过迭代器遍历集合中的数...

niceyoo的博客 363

java中的集合(List、Set、Map集合使用大解析)

List、Set、Map集合使用大解析

weixin_39038328的博客 1603

Java容器类List、ArrayList、Vector及map、HashTable、HashMap分别的区别

ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。Collection ├List    接口│├LinkedList    链表│├Arra

Peter_K的专栏 3207
上一篇: SpringMvc的入门案例
下一篇: Oracle中异常处理
午-夜
博客等级 码龄12年 95粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值