iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JAVA中集合体系的示例分析
  • 852
分享到

JAVA中集合体系的示例分析

java 2023-05-30 22:05:56 852人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关JAVA中集合体系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、集合概况Java是一种面向对象语言,如果我们要针对多个对象进行操作,那么首先必要将多个对象进行保存起来之后,

这篇文章给大家分享的是有关JAVA中集合体系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、集合概况

Java是一种面向对象语言,如果我们要针对多个对象进行操作,那么首先必要将多个对象进行保存起来之后,然后才能操作,那么我们肯定会想到用数组来进行存放,但数组长度固定,不能满足变化的要求。所以,JAVA提供了集合。

数组与集合的区别:

数组:长度固定、可以存放基本类型/引用类型、数组中元素的类型必须一致

集合:长度可变自动扩容、只能存放引用类型、集合中元素类型可以不一致但一般保持一致

二、集合体系

集合作为一个容器,可以存储多个元素,但是由于数据结构的不同,java提供了多种集合类。将集合类中共性的功能,不断向上抽取,最终形成了集合体系结构。

数据结构:数据存储的方式

Java中集合类的关系图:

JAVA中集合体系的示例分析

JAVA中集合体系的示例分析

三、Collection【单值接口】

Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。因为一些Collection允许存放相同的元素而另一些不行。一些能有序而另一些不行,于是衍生出两个子类接口List和Set。

JAVA中集合体系的示例分析

Collection接口中常用方法:

A:添加功能
boolean add(Object obj):向集合中添加一个元素
boolean addAll(Collection c):向集合中添加一个集合的元素。
B:删除功能
void clear():删除集合中的所有元素。
boolean remove(Object obj):从集合中删除指定的元素
boolean removeAll(Collection c):从集合中删除一个指定的集合元素。
C:判断功能
boolean isEmpty():判断集合是否为空。
boolean contains(Object obj):判断集合中是否存在指定的元素。
boolean containsAll(Collection c):判断集合中是否存在指定的一个集合中的元素。
D:遍历功能
Iterator iterator():就是用来获取集合中每一个元素。
E:长度功能
int size():获取集合中的元素个数
F:交集功能
boolean retainAll(Collection c):判断两个集合中是否有相同的元素。
G:把集合转换成数组
Object[] toArray():把集合变成数组。

List接口中常用方法:

首先我们知道List接口是Collection接口的子类,所以也具备上面的方法,但除了上面的方法外,List接口中典型的ArrayList底层是采用的数组结构,因此还具体被一些索引操作的方法,如下:

List的特有功能
A:添加功能
void add(int index, Object obj):在指定位置添加元素
B:删除功能
Object remove(int index):根据指定索引删除元素,并把删除的元素返回。
C:修改功能
Object set(int index, Object obj):把指定索引位置的元素修改为指定的值,返回修改前的值。
D:获取功能
int indexOf(Object o):返回指定元素在集合中第一次出现的索引
Object get(int index):获取指定位置的元素
ListIterator listIterator():列表迭代器
E:截取功能
List subList(int fromIndex, int toIndex):截取集合。

Set接口中常用方法:

Set接口下的元素无序,不可以重复。其下面分为HashSet和TreeSet。

HashSet

底层数据结构是哈希表,线程安全,效率高。
保证唯一性依赖两个方法:hashCode()和equals()。
顺序:
判断hashCode()值是否相同。
相同:继续走equals(),看返回值
如果true:就不添加到集合。
如果false:就添加到集合。
不同:就添加到集合。

TreeSet

底层数据结构是二叉树,线程不安全,效率高。
保证元素唯一性的方法时根据返回值是否是0。
保证排序的两种方式:
自然排序(元素具备比较性):实现Comparable接口
比较器排序(集合具备比较性):实现Comparator接口

四、迭代器(Iterator)

迭代器,从第一张JAVA集合类图关系中可以看出,除了中间的Collection外,置于最顶上的左边为迭代器Iterator.

1.使用步骤:

通过集合对象获取迭代器对象。
2、通过迭代器对象判断。
3、通过迭代器对象获取。

2.迭代器原理

由于多种集合的数据结构不同,所以存储方式不同,所以,取出方式也不同。那么这个时候,把判断和获取功能定义在了一个接口中,将来,遍历哪种集合的时候,只要该集合内部实现这个接口即可。【迭代器模式】

3.Collection存储字符串和自定义对象并通过迭代器遍历

Collection c = new ArrayList(); c.add("hello"); c.add("world"); c.add("java");  Iterator it = c.iterator(); while(it.hasNext()) {   String s = (String)it.next();   System.out.println(s); }

4.ListIterator迭代器是Iterator的子接口

所以List的遍历方式共有三种1、Iterator迭代器2、ListIterator迭代器3、普通for+get()

五、Map<键值对接口>

map是一个键值对形式的集合。它的元素都是有键和值组成。Map的键(key)是唯一的,值(value)可以重复。

JAVA中集合体系的示例分析

Map接口中常用方法:

A:添加功能
V put(K key ,V value) :当key在集合中不存在是,添加元素;当key存在时替换元素
B:判断功能
boolean containsKey (Object key) :判断指定的键是否在集合中存在
Boolean containsValue(Object value):判断指定的值是否在集合中存在
Boolean isEmpty() :判断集合是否为空
C:删除功能
Void clear():清除所有键值对数据
D:获取功能
Object get (Object key) :根据键获取值
Set<K> keyset(): 所有键的集合
Collection<V>values() :所有值的集合
Set<Map.Entry<K,V>> entrySet() :返回此映射中包含的映射关系的 Set 视图
E:长度功能
Int size()

Map包括HashMap、HashTable和TreeMap。其中,HashTable已基本被HashMap取代, 新代码中基本不在使用HashTable
(注:HashMap支持null , HashTable不支持null )

Map的遍历方式:

键找值:

public static void main(String[] args) {   Map<String,Integer> map = new HashMap<String,Integer>();   map.put("二阳",23);   map.put("二峥",24);   map.put("二光",25);   Set<String> keys=map.keySet();  //把键其中起来,存入到set集合中.   for(String key:keys){    //遍历键集合,获取每一个键。增强for    Integer value=map.get(key);  //让键去找值 get(Object key)    System.out.println(key+"***"+value);   } }

 2.键值对

public static void main(String[] args) {   Map<String,Integer> map = new HashMap<String,Integer>();   map.put("二阳",23);   map.put("二峥",24);   map.put("二光",25);   Set<String> keys=map.keySet();  //把键其中起来,存入到set集合中.   for(String key:keys){    //遍历键集合,获取每一个键。增强for    Integer value=map.get(key);  //让键去找值 get(Object key)    System.out.println(key+"***"+value);   } }

感谢各位的阅读!关于“JAVA中集合体系的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: JAVA中集合体系的示例分析

本文链接: https://www.lsjlt.com/news/222016.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JAVA中集合体系的示例分析
    这篇文章给大家分享的是有关JAVA中集合体系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、集合概况Java是一种面向对象语言,如果我们要针对多个对象进行操作,那么首先必要将多个对象进行保存起来之后,...
    99+
    2023-05-30
    java
  • Java中集合关系图的示例分析
    这篇文章主要介绍Java中集合关系图的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下面是一张下载的Java中的集合类型的继承关系图,便于正确的理解和使用相应的集合类型。  几个面试常见问...
    99+
    2023-05-30
    java
  • Java中集合的示例分析
    小编给大家分享一下Java中集合的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java集合java集合类存放于java.util包中,是一个用来存放对象...
    99+
    2023-06-20
  • java集合的示例分析
    这篇文章主要介绍了java集合的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、简介1、java集合框架图从上面的集合框架图可以看到,Java 集合框架主要包括两种...
    99+
    2023-06-20
  • java集合中list的示例分析
    这篇文章主要为大家展示了“java集合中list的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java集合中list的示例分析”这篇文章吧。1、List接口该接口定义的元素是有序的且可...
    99+
    2023-05-30
    java list
  • Java Map集合的示例分析
    这篇文章将为大家详细讲解有关Java Map集合的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言map集合是我们常使用的集合,了解和使用map集合是必要的二、Map介绍基本形式:...
    99+
    2023-06-25
  • python中集合的示例分析
    这篇文章主要介绍python中集合的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、集合的基本信息集合:集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重。格式:set1 = set(...
    99+
    2023-06-15
  • ES6中Map集合的示例分析
    这篇文章将为大家详细讲解有关ES6中Map集合的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Map集合类似于对象,也是键值对的集合,但是 键 不限于字符串,各种...
    99+
    2024-04-02
  • ES6中集合set的示例分析
    这篇文章给大家分享的是有关ES6中集合set的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。集合set新的数据结构Set(集合),它类似于数组,成员的值都是唯一的,集合实...
    99+
    2024-04-02
  • Oracle中集合查询的示例分析
    这篇文章主要介绍了Oracle中集合查询的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用并集运算,查询20号部门或30号部门的员...
    99+
    2024-04-02
  • Java集合中基本数据结构的示例分析
    这篇文章主要介绍Java集合中基本数据结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!集合中三大数据结构数组内存地址连续可以通过下标的成员访问,下标访问的性能高增删操作有较大的性能消耗(需要动态扩容)链表...
    99+
    2023-06-15
  • Java中输入/输出流体系的示例分析
    这篇文章主要介绍Java中输入/输出流体系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java输入/输出流体系1.字节流和字符流字节流:按字节读取。字符流:按字符读取。字符流读取方便,字节流功能强大,当不...
    99+
    2023-05-30
    java
  • java中并查集的示例分析
    这篇文章主要介绍了java中并查集的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、概述并查集:一种树型数据结构,用于解决一些不相交集合的合并及查询问题。例如:有n...
    99+
    2023-06-29
  • JAVA异常体系结构的示例分析
    这篇文章主要介绍JAVA异常体系结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、什么是异常异常:程序在运行过程中发生由于硬件设备问题、软件设计错误等导致的程序异常事件。(在Java等面向对象的编程语言...
    99+
    2023-05-30
    java
  • ubuntu命令集合的示例分析
    小编给大家分享一下ubuntu命令集合的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!"运行"(不知道叫什么,和win下的 开始-运行...
    99+
    2023-06-16
  • JVM中体系结构的示例分析
    小编给大家分享一下JVM中体系结构的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是JVM?JVM(Java Virtual Machine)是一个抽...
    99+
    2023-06-20
  • mysql中日志体系的示例分析
    这篇文章主要介绍了mysql中日志体系的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 一、 mysql...
    99+
    2024-04-02
  • js遍历集合的示例分析
    这篇文章将为大家详细讲解有关js遍历集合的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Array可以使用下标,Map和Set不能使用下标,ES6引入了itera...
    99+
    2024-04-02
  • LINQ函数集合的示例分析
    这篇文章主要为大家展示了“LINQ函数集合的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“LINQ函数集合的示例分析”这篇文章吧。LINQ函数集合我已经在C#3.0的介绍LINQ专题中提...
    99+
    2023-06-17
  • java8集合求差集、并集、交集的示例分析
    这篇文章将为大家详细讲解有关java8集合求差集、并集、交集的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言java8里最大亮点是lambda,让我们用习惯C# linq的语法,也能眼前一亮。...
    99+
    2023-05-30
    java8
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作