通俗易懂java集合,java中集合类型有哪些特点,java中常见的集合类型有
因为面向对象语言意味着一切都是以对象的形式存在的,所以它存储对象是为了方便处理多个对象。集合是存储对象最常见的方式。
数组也可以存储对象,但是长度是固定的;集合的长度是可变的,数组可以包含基本数据类型。只有对象可以存储在集合中。
特点:集合只用来存储对象,集合的长度是可变的。集合可以存储不同类型的对象。
在上面的类图中,ArrayList、LinkedList、HashMap等实现类用实线包围,AbstractCollection、AbstractList、AbstractMap等实现类用虚线包围。
1.迭代器接口
迭代器接口。用于遍历集合中元素的接口主要包括三个方法:hashNext()、Next()和remove()。接口的链接迭代器增加了三个方法:add(,pre-configure)和has pre-configure。也就是说,如果迭代器接口是first,那么遍历集合中的元素时,只能在后面遍历,被遍历的元素不在遍历中。通常,正是这个接口实现了无序集合。例如HashSet,HashMap;此外,这些元素的有序集合通常实现一个链接迭代器接口。实现此接口的集合可以访问next))中的以下元素或previous))中的上一个元素,如ArrayList。
使用抽象类。如果要自己实现集合类,实现它们的抽象接口是非常麻烦和大量的工作。此时,您可以使用抽象类。这些抽象类提供了许多现成的实现。只要根据需要重写或添加一些方法,就可以实现所需的集合类,从而大大减少工作流。
2.集合(集合的最大接口)继承关系
——List可以存储重复的内容。
——Set不能存储重复的内容,所以可以通过hashCode()和equals()来区分重复的内容
3354队列接口
——SortedSet可以对集合中的数据进行排序。
集合定义了集合框架的一般功能。
add方法的参数类型是一个对象。使其更容易接收任何类型的对象。
存储在集合中的所有对象都是对象的引用(地址)。
3.列表的常见子类
独特的方法。可以操纵角度目标的方法都是该系统独有的。
——ArrayList线程不安全,查询速度快。
——Vector是线程安全的,但是速度慢,已经被ArrayList取代。
3354链表的结果就是增删快。
4.设置接口
Set)元素顺序不对(存取款顺序不一定一样),元素不能重复。
——HashSet的基本数据结构:是一个哈希表。线程不安全。不同步。
HashSet如何保证元素的唯一性?
它由元素的两种方法实现:hashCode和equals。
只有当元素的HashCode值相同时,才会确定equals是否为真。
如果元素的hashcode值不同,则不调用equals。
注意,元素的hashcode和equals方法依赖于诸如确定和删除元素是否存在之类的操作。
——树集:
有序存储区:TreeSet线程不安全,所以可以对Set集合中的元素进行排序。
CompareTo或compare方法保证了元素的唯一性,元素存储在二叉树中。
5.对象类别
在实际开发中,我们经常会面临区分同一个对象的问题。对于完整的类,建议使用三种方法:Object类的hashCode()、equals()和toString()。
6.收集输出
33544常见输出模式
——迭代器:迭代输出,最常用的输出模式
354列表迭代器——用于打印列表内容的迭代器子接口。
3354枚举
——每个
由于迭代期间出现ConcurrentmodificationException异常,集合对象的方法无法处理集合中的元素。所以对于迭代器来说,只有处理迭代器中元素的方法,而对于迭代器来说,迭代器的方法是有限的,只能进行元素的判断、检索和删除。如果需要添加、修改等操作,必须使用它的子接口ListIterator。您只能从列表集合的Listiterator方法中获取此接口。
7.地图界面
Correction、Set和List接口都是单值操作,但是Map中的每个元素都以key——value的形式存储在集合中。
米饭
Ap:这个集合存储键值对。一对一存款。并确保密钥的唯一性。
8.地图接口的常见子类
地图
——HashMap:底层是哈希表数据结构,允许使用空值和空键。此收藏不同步。替换hashtable,jdk1.2 .效率高。
——TreeMap:底层是二叉树数据结构。线程不同步。可用于对映射集合中的键进行排序。
9.收集工具类
集合:集合框架的工具类。所有的定义都是静态方法。
收藏和收藏有什么区别?
是集合框架中的顶级接口,它定义了单列集合的常用方法。
它有两个常用的子接口,
——列表:所有元素都定义了索引。秩序井然。可以重复元素。
——Set:元素不能重复。紊乱。
Collections是集合框架中的一个工具类。这个类中的方法是静态的。
提供的方法包括列表集排序、二分搜索法等。
常用的集合是线程不安全的。因为为了提高效率。
如果这些集合是由多线程操作的,那么不安全的线程集合可以通过工具类中的同步方法转换成安全的。
比较
有秩序吗?
允许重复元素吗?
募捐
不
是
目录
是
是
一组
抽象集
不
不
哈希特
合框架
是(二叉排序树)
地图
抽象地图
不
使用键值来映射和存储数据。密钥必须是唯一的,并且值可以重复。
模拟
树形图
是(二叉排序树)
11.总结:
列表:添加/删除/获取/设置.
1.ArrayList:其实就是一个数组,容量很大。频繁的增删简直是噩梦,适合随机搜索;
2.linked list:push/[pop remove pull]已经加入,其实都是removeFirst;
3.Vector:历史遗留的产物,ArrayList的同步版本。代码太类似于ArrayList
4,Stack:继承自Vector。其实Java里没有纯栈,可以自己实现。可以用组合的方式打包LinkedList。
5.队列:它原本是一个独立的类别,但在SUN的中,LinkedList被用来提供这个功能。主要方法是offer/pull/peek,所以属于这里。
设置:添加/删除.你可以使用迭代器或者把它们转换成列表。
1.HashSet:由HashMap内部实现;
2.LinkedHashSet:由LinkedHashMap实现;
3,TreeSet:TreeMap .
地图:放置/获取/移除.
1.HashMap/HashTable:哈希表,像ArrayList一样用数组实现,超过初始容量就会失去性能;
2.LinkedHashMap:继承自HashMap,但通过重写嵌套类HashMap实现了链表结构。入门,这也有容量的问题;
3,Properties:它是一个继承的哈希表。
对了,Arrays.asList,这个方法的实现依赖于一个嵌套类,也叫ArrayList!
Java中集合类型的继承图
Java中集合类型的继承图
如何在IntelliIdea中查看一个类的所有继承lpar当前类的所有继承图rpar
如何在IntelliIdea中查看一个类的所有继承关系(当前类的所有继承关系图)?体现{ padding:10px 10px 10px;边距:0-20px;边框-b.
Isolo继承图
输入流/输出流继承图
Ios控件继承图
闲来无事的时候整理一下UI控件的继承图,给自己和大家用。
android中的组件继承图一目了然。
查看继承图适配器适配器继承图活动继承图
Pycharm查看一个类的继承图。
Pycharm查看我们开发过程中一个类的继承图:有很多类是我们使用的开发框架自带的,或者是我们定制的;类之间的单继承和多继承经常被使用。这种继承不仅是一级继承关系,还包括几个.
Unity类继承图
UnityEngine(命名空间)其他命名空间其他类Object (class)其他类(继承自Object) Component (class)(继承自Object)其他类(继承自Component) Tran.
与QWidget相关的Qt可视化组件继承图
与QWidget相关的Qt可视化组件继承图
Java集合框架类图
Java集合框架的类图http://blog.toruneko.net/28
随机推荐
Oracle基本备份和恢复
#完整库备份缓冲区ctype=complete file=c:\ mm info . DMP log=c:\ mm info . log #用户备份:用户mminfo bufferyowner下的所有表=.
用RxJava处理嵌套请求
RxJava用于处理互联网应用开发中的嵌套请求。由于对网络数据的频繁请求,后一个请求的参数往往是前一个请求的结果,因此往往需要在前一个请求的响应中发送第二个请求,这就产生了“请求嵌套”。
VS2015sol2013sol2012 IIS Express调试经典ASP
参考:3359 msdn.microsoft.com/en-us/library/ms241740(v=vs . 100)。当您附加到ASP网站时.
看别人的代码学css
菜单学习-037-JavaWeblowbar;006 - JSP操作id-包含
此操作指的是在当前页面中包含一个或多个JSP页面或HTML文件。语法:
Centos安装vnc服务
1.安装老虎VNC-服务器yum安装老虎VNC-服务器2。启动VNC服务vncserver:1[待解决的错误提示错误的显示名称.
24.手把手lbrack教你Extjs5 (24)模块窗体的自定义设计;3rsqb
用户定义的表单已准备好运行。让我们更改配置,将字段集放入Tab下的表单中。修改ModuleModel.js中data下tf_FormSchemes下的方案,增加一个属性。
前端汇总编号;183semi基本商品编号;183semiJS (4)异步请求和跨域方案
汇总系列前端汇总基础篇CSS (1)布局前端汇总基础篇CSS (2)可视化前端汇总基础篇CSS (3)补充前端汇总基础篇JS (1)原型。原型链。构造函数和字符串(String).
反向传播算法的推导和直观说明
本文是Coursera机器学习课程中吴恩达反向传播算法的扩展。文章分为三个部分:第一部分给出了一个简单的神经网络模型和b。
Python3词汇助手有翻译助手和导出文件格式转换
根据有道翻译软件的功能和实际应用,基于Python3.6编写了有道翻译助手软件,测试文件和源代码已上传至https://github.com/MMMMMichael/Translation-.
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。