java map与set的区别_Java中的Set,List,Map的区别是什么?

对JAVA的集合的理解是想对于数组

数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)

JAVA集合可以存储和操作数目不固定的一组数据。

所有的JAVA集合都位于 java。util包中!

JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。

JAVA集合主要分为三种类型:

Set(集)

List(列表)

Map(映射)

Collection 接口

Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。

Set 和List 都继承了Conllection,Map没有

Collection接口的方法:

boolean add(Object o)   :向集合中加入一个对象的引用

void clear()                        :删除集合中所有的对象,即不再持有这些对象的引用

boolean isEmpty()           :判断集合是否为空

boolean contains(Object o): 判断集合中是否持有特定对象的引用

Iterartor iterator()              : 返回一个Iterator对象,可以用来遍历集合中的元素

boolean remove(Object o):从集合中删除一个对象的引用

int size()                               :返回集合中元素的数目

Object[] toArray()                 :返回一个数组,该数组中包括集合中的所有元素

关于:Iterator() 和toArray() 方法都用于集合的所有的元素,前者返回一个Iterator对象,后者返回一个

包含集合中所有元素的数组。

Iterator接口声明了如下方法:

hasNext(): 判断集合中元素是否遍历完毕,如果没有,就返回true

next()       :返回下一个元素

remove():从集合中删除上一个有next()方法返回的元素。

Set(集合):

Set是最简单的一种集合。

集合中的对象不按特定的方式排序,并且没有重复对象。

Set接口主要实现了两个实现类:

HashSet : HashSet类按照哈希算法来存取集合中的对象,存取速度比较快

TreeSet   : TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

Set 的用法:

存放的是对象的引用,没有重复对象

Set set=new HashSet();

String s1=new String("hello");

String s2=s1;

String s3=new String("world");

set。

add(s1);

set。add(s2);

set。add(s3);

System。out。println(set。size());//打印集合中对象的数目 为 2。

Set 的 add()方法是如何判断对象是否已经存放在集合中?

boolean isExists=false;

Iterator iterator=set。

iterator();

while(it。hasNext())           {

String oldStr=it。next();

if(newStr。equals(oldStr)){

isExists=true;

}

}

List(列表):

List的特征是其元素以线性方式存储,集合中可以存放重复对象。

List接口主要实现类包括:

ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与

与删除元素的速度慢。

LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。

对于List的随机访问来说,就是只随机来检索位于特定位置的元素。

List 的 get(int index) 方法放回集合中由参数index指定的索引位置的对象,下标从“0” 开始。

全部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java怎么使用泛型_java泛型 7 泛型的基本介绍和使用

现在开始深入学习Java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用。泛型在java中,是一个十分重要的特性,所以要好好的研究下。一、泛型的基本概念泛型的定义:泛型是JDK 1.5的一项新特性…

java铝轮_为速度而生 JAVA Fuoco铝合金气动公路

人类在追求速度的历史上一直在不断创新,从两个轮子的自行车,到四个轮字的汽车,再到螺旋桨的飞机,追求速度是人类与生俱来的天性。就如同公路车的用途非常多,综合型公路车、耐力型公路车、爬坡型公路车,但唯…

erlang mysql性能瓶颈,Erlang Mysql:如何防止SQL注入

Im very new to erlang and I need to code something which inserts rows in a MySQL Database.How can I prevent SQL Injections with Erlang? Is there also something like prepared statements in other Languages or how should I do it?Thanks for your replies.解决…

下列哪个不是java的数据类型_下面哪个不是Java基本数据类型?()

采集血标本时,错误的操作是A.血清标本应注入干燥试管B.生化检验标本在空腹时采集试比较脂肪酸β-氧化与生物合成的差异。调节水平衡的激素主要是A.胰岛素 B.甲状旁腺激素 C.血管升压素 D求比50克多5克的数是多少?列式是…

Java jpa 字段限制_Java-JPA:仅更新特定字段

我有同样的问题,正如Deinum先生所指出的,答案是否定的,您不能使用save。 主要问题是Spring Data不知道如何处理null。 是否设置了空值,还是因为需要将其删除而设置了空值?现在从您的问题来看,我认为您也有同…

java excel中删除两列_Java 插入、隐藏/显示、删除Excel行或列

概述操作Excel工作表时,对表格中的行或列数据可执行,包括插入、隐藏、显示、删除等在内的多种操作需求,本文将通过Java代码示例演示每种操作的具体实现方法。文中方法使用了Java Excel类库(Free Spire.XLS for Java 免费版),可通过…

java屏蔽编译告警_java-禁止JAXB生成的类上的编译器警告

这可能是该问题的副本(Avoiding Compiler warnings on code generated by xjc),但是由于我不太了解XJC / JAXB自定义绑定特质,所以我想我可能误解了所提到的问题.我的问题似乎很简单-如何将SuppressWarnings(“ all”)批注添加到生成的JAXB类中?我们的项目有0个警告…

Java中number数字类型的转换_Java下数字类型的转换 (转)

Java下数字类型的转换 (转)[more]作者:家居猫各种数字类型转换成字符串型:String s String.valueOf( value); // 其中 value 为任意一种数字类型。字符串型转换成各种数字类型:String s "169";byte b Byte.parseByte( s );short…

Java0steam_Java学习 - Stream 使用

Java Stream使用这段时间在学数据库和Java,发现Java的Stream实际上和数据库的查询操作非常类似。这里简单介绍Stream的用法,并和Sql Server中的操作联系起来。此文为初学Stream所写,以后对Stream有更深的理解后会重写当我们使用一个流的时候&…

mysql初始化很慢_mysql初始化报错

/var/log/mysql.log 日志报错如上图所示解决方法:SELinux惹的祸通俗的讲就是linux服务器的安全策略解决:临时关闭:setenforce 0永久关闭需要修改配置文件,重启机器:修改/etc/selinux/config 文件将SELINUXenforcing改为…

百度java的线程技术_自我提升(基础技术篇)——java线程简介

前言:虽然自己平时都在用多线程,也能完成基本的工作需求,但总觉得,还是对线程没有一个系统的概念,所以,查阅了一些资料,理解那些大神和官方的资料,写这么一篇关于线程的文章本来想废…

java调用扫描仪识别文字_Java使用扫描仪读取文件输入

示例Scanner scanner null;try {scanner new Scanner(new File("Names.txt"));while (scanner.hasNext()) {System.out.println(scanner.nextLine());}} catch (Exception e) {System.err.println("发生异常!");} finally {if (scanner ! nul…

d3 tip mysql_mysql

字符:char(10)->定长、10个字符宽度。如果右侧不够,则空格补齐,取出来的时候删除空格。varchar(10)->变长、最多10个字符如:存姓名的时候,没必要为了那几个长度去使用varchar,使用定长去存储会提高效…

java string rt_如何使jvm加载我的java.lang.String而不是rt.jar中的那个

我认真研究了Java类加载器。现在,我想编写一个与rt.jar中的类之一具有相同的包名称和类名称的类。例如,我自己编写一个java.lang.String类,以及如何打破父级委托模型以使jvm加载我的java.lang.String而不是rt.jar中的类。重新编辑Thx&#xf…

php在线语音,PHP在线语音合成

这篇文章主要介绍了PHP在线语音合成,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下在线语音合成 PHP SDKhttp://yuyin.baidu.com/docs/tts/194PHP SDK文档简介Hi,您好,欢迎使用百度语音合成服务。本文档…

php工厂模式和单例模式,php 设计模式之工厂模式、单例模式、注册树模式

php 设计模式之工厂模式、单例模式、注册树模式在软件工程中,创建型设计模式承担着对象创建的职责,尝试创建适合程序上下文的对象,对象创建设计模式的产生是由于软件工程设计的问题,具体说是向设计中增加复杂度,创建型…

php 正则匹配unicode,PHP中正则表达式对UNICODE字符码的匹配方法

网友ainiaa的问题是PHP代码如下代码如下:$words "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSRUVWXYZ!#$%^&*()_-[]\\,./{}|<>?\"你好啊我们";$otherStrpreg_replace("/[chr(128)-chr(256)]/is"," ",$words);ech…

iis7怎么安装php7,Linux下如何安装php7

Linux下安装php7的方法&#xff1a;首先安装依赖包&#xff0c;并下载解压安装包&#xff1b;然后检查环境的依赖关系&#xff0c;并编译安装&#xff1b;接着将【php.ini-production】改名为【php.ini】&#xff1b;最后复制启动脚本&#xff0c;并启动PHP即可。Linux下安装ph…

php长轮询阻塞,ajax长轮询时php被阻塞

刚接触实时通讯这块&#xff0c;知道用websocket更高效&#xff0c;但我想了解轮询的实现过程&#xff0c;循序渐进短轮询用定时器setInterval已经实现了&#xff0c;但长轮询时后台进入死循环模块导致整个网站的php网页无响应&#xff0c;比如刷新页面、提交消息都没法进行。具…

php隐藏路径ngnix,thinkphp框架在nginx环境下去掉index.php路径显示

协助用户将apache下的一个网站迁移到nginx环境中&#xff0c;结果发现用户用的ThinkPHP框架做的开发&#xff0c;默认用的pathinfo。这是一个很头疼的问题&#xff0c;因为nginx不支持pathinfo&#xff0c;贸然一并打开也担心不安全。于是查询资料后整理如下&#xff1a;找到ap…