对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” 开始。

全部

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

  1. java io和nio的区别_Java中IO和NIO的本质和区别

    导读热词 简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1 ...

  2. java线程和进程的区别_Java中的线程和进程比较

    1.进程和线程的区别 通俗一点说,进程就是程序的一次执行,而线程可以理解为进程中的执行的一段程序片段. 用一点文词说就是,每个进程都有独立的代码和数据空间(进程上下文);而线程可以看成是轻量级的进程. ...

  3. java堆和栈的区别_JAVA中堆和栈的区别

    在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配 ...

  4. java栈和堆的区别_Java中堆和栈的区别

    堆和栈都是Java用来在RAM中存放数据的地方. 堆 (1)Java的堆是一个运行时数据区,类的对象从堆中分配空间.这些对象通过new等指令建立,通过垃圾回收器来销毁. (2)堆的优势是可以动态地分配 ...

  5. java数组和链表的区别_java中链表和数组的区别?

    综述:数组是线性结构,可以直接索引,即要去第i个元素,a[i]即可.链表也是线性结构,要取第i个元素,只需用指针往后遍历i次就可.貌似链表比数组还要麻烦些,而且效率低些. 想到这些相同处中的一些细微的 ...

  6. JAVA中重写和实现的区别_Java中重载和重写的区别

    Java中重载和重写的区别 1.1重载是什么 Overloading   方法重载是让类以统一的方式处理不同类型数据的一种手段,多个同名函数同时存在,具有不同的参数个数/类型 1.2为什么用重载 重载 ...

  7. java.io和util的区别_Java NIO与IO的区别和比较

    Java NIO与IO的区别和比较 导读 J2SE1.4以上版本中发布了全新的I/O类库.本文将通过一些实例来简单介绍NIO库提供的一些新特性:非阻塞I/O,字符转换,缓冲以及通道. 一. 介绍NIO ...

  8. Java如何解决mysql读写延迟_java中延迟任务的处理方式

    1.利用延迟队列 延时队列,第一他是个队列,所以具有对列功能第二就是延时,这就是延时对列,功能也就是将任务放在该延时对列中,只有到了延时时刻才能从该延时对列中获取任务否则获取不到-- 应用场景比较多, ...

  9. java wait 参数_java中wait()和join()方法的区别是什么

    java中wait()和join()方法的区别是:存在不同的java包中:wait()方法用于线程间通信,它所施加的等待状态的线程可以被启动:join()方法用于在多个线程之间添加排序,它所施加的等待 ...

最新文章

  1. 开发板_Hi3516DV300核心板/开发板;Hi3516EV100+4G+AUDIO RTMP开发板;海思系列开发板/核心板定制开发...
  2. 今日小程序推荐:香蕉打码-二维码随意生成
  3. httpd开启status模块_Nginx高并发系列之二——Nginx开启ssl模块
  4. centos 卸载_CentOS「linux」学习笔记12:磁盘管理、分区挂载卸载操作
  5. A Mini Locomotive POJ - 1976(动态规划+思维)
  6. 使用FizzBu​​zz和JUnitParams进行单元测试
  7. UVA - 10079 Pizza Cutting
  8. 确认系统存储模式C语言,关于C语言中的union
  9. java jxl上传excel_JAVA实现上传,下载,jxl操作Excel和邮件发送
  10. Linux curl 命令下载文件
  11. 猿创征文|时间序列分析算法之平稳时间序列预测算法和自回归模型(AR)详解+Python代码实现
  12. wince 播放器 最终版本
  13. mysql修改唯一索引
  14. ArcGIS 图像合并至新栅格图层
  15. 利用python绘制勾股定理赵爽弦图
  16. RTX 4080、RTX4070 Ti 相当于什么水平
  17. Win11 封杀第三方浏览器工具,不用 Edge 就不行
  18. 实录:HBA卡速率设置错误导致服务器无法识别存储
  19. 50天50个前端小项目(纯html+css+js)第十二天(FAQ 问题与回答框)
  20. 转:目前游戏行业内部主要几款游戏…

热门文章

  1. python两人一碰_python运用pygame库实现双人弹球小游戏
  2. python怎么放音乐_python怎么播放音乐
  3. idea将远程代码更新合并到本地_idea 本地调试远程服务器代码
  4. 中国的程序员为什么这么辛苦?
  5. win7蓝屏0x000000f4修复_注意:关于近期多数电脑蓝屏的处理和预防方法
  6. Java学习笔记—UDP通信
  7. 【转】逆变与协变详解
  8. 【转】图解phpstorm常用快捷键
  9. 【转】添加web引用和添加服务引用有什么区别?
  10. ffmpeg 截图太模糊了_PPT图片模糊?导师说放大!