java -复习

  1. 数组存储数据方面的特点和弊端
  1. 数组一旦初始化,其长度就是确定的。
  2. 数组中的多个元素是依次紧密排列的,有序的,可重复的
  3. (优点)数组一旦初始化完成,其元素的类型就是确定的。不是此类型的元素,就不能添加到此数组中。int[] arr = new int[10];arr[o] = 1;
  4. arr[1] =“AA”;//编译报错
  5. Object[] arr1 = new Object[10];
  6. arr1[o] = new String();
  7. arr1[1] = new Date();
  8. (优点)元素的类型既可以是基本数据类型,也可以是引用数据类型。
  9. 数组存储多个数据方面的弊端:
  10. 数组一旦初始化,其长度就不可变了。
  11. 数组中存储数据特点的单一性。对于无序的、不可重复的场景的多个数据就无能为力了。
  12. 数组中可用的方法、属性都极少。具体的需求,都需要自己来组织相关的代码逻辑。
  13. 针对于数组中元素的删除、插入操作,性能较差。

  1. 集合框架概述
  1. java.util.Collection:存储一个一个的数据
  2. -----子接口:List :存储有序的、可重复的数据 (“动态"数组)
  3. l---- ArrayList(主要实现类)、LinkedList、Vector
  4. -----子接口,set :存储无序的、不可重复的数据(高中学习的集合)---- HashSet(主要实现类)、LinkedHashSet、TreeSet
  5. java.util.Map:存储一对一对的数据(key-value键值对,(x1,y1)、(x2,y2) --> y=f(x),类似于高中的函数)---- HashMap(主要实现类)、LinkedHashMap、TreeMap、Hashtable、Properties

  1. Collection的常用方法
  1. Add(Object obj);
  2. addAll(Collection coll);
  3. Clear();
  4. isEmpty();
  5. Size();
  6. Contains(Object obj);
  7. ContainsAll(Collection coll)
  8. retainAll(Collection coll)
  9. Remove(Object obj)
  10. RemoveAll(COllection coll)
  11. hashCode()
  12. Equals()
  13. toArray()
  14. Iterator()---->引出迭代器接口

向Collection中添加元素的要求:

>要求元素所属的类一定要重写equals()!

集合与数组的相互转换:

集合 ---> 数组:toArray()

数组 ---> 集合:调用Arrays的静态方法asList(object ... objs)

3.2 迭代器端口:

  1. 设计模式的一种
  2. 迭代器不负责数据的存储;负责对集合类的遍历

2.何获取迭代器(Iterator)对象?

Iterator iterator = coll.iterator();

3.如何实现遍历(代码实现)

//hasNext():判断是否还有下一个元素

        while(iterator.hasNext()){

            //next():@指针下移 @将下移以后集合位置上的元素返回

            System.out.println(iterator.next());

        }

  1. Collection的子接口: List

常用方法;

Add(Object obj)

addAll(Collection coll)

Remove(Object obj)

Remov(int index)

Set(int index ,Onject ele)

Get(int index)

Add(int index,Object ele)

addALL(int index,Collection eles)

长度

Size()

遍历

Itertor(),使用迭代器进行遍历

争强for循环

一般的for循环

List及其实现类特点

java.util.Collection:存储一个一个的数据

|-----子接口:List:存储有序的、可重复的数据 ("动态"数组)

1|--- ArrayList:List的主要实现类:线程不安全、效率高:底层使用Object[]数组储存

在添加数据、查找数据时,效率高;插入、删除数据时效率低

|----LinkedList底层使用双向链表的方式进行储存

在添加数据、查找数据时,效率低;插入、删除数据时效率高

|---Vector:List的古老实现类:线程安全的、效率低;

  1. Collection的子接口: Set
  1. Set中的常用的方法都是Collection中声明的方法,没有新增的方法
  2. 。常见的实现类的对比
  3. java.util.Collection:存储一个一个的数据
    1. -----子接口:Set:存储无序的、不可重复的数据(高中学习的集合)
    2. ---- HashSet:主要实现类,底层使用的是HashMap,即使用数组+单向链表+红黑树结构进行存储。 (jdk8
    3. ---- LinkedHashSet: 是HashSet的子类,在现有的数组+单向链表+红黑树结构的基础上,又添加了一组双向链表,用于记录添加元素的先后顺序。即,我们可以按照添加元素的顺
    4. 实现遍历。便于频繁的查询操作。
    5. ---- TreeSet:底层使用红黑树存储。可以按照添加的元素的指定的属性的大小顺序进行遍历。

  1. Map接口
  1. 它创建了一个 TreeMap 实例并使用自定义的 Comparator 对象来进行排序。TreeMap 是一个基于红黑树实现的有序映射,你可以用自定义的 Comparator 来定义元素之间的排序规则。

  1. >底层使用红黑树存储;
  2. >可以按照添加的key-value中的key元素的指定的属性的大小顺序进行遍历
  3. >需要考虑使用1.自然排序 2.定制排序。

>要求:向TreeMap中添加的key必须是同一个类型的对象。

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

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

相关文章

【ArcGIS Pro二次开发】(60):按图层导出布局

在使用布局导图时,会遇到如下问题: 为了切换图层和导图方便,一般情况下,会把相关图层做成图层组。 在导图的时候,如果想要按照图层组进行分开导图,如上图,想导出【现状图、规划图、管控边界】3…

UNIX网络编程——TCP协议API 基础demo服务器代码

目录 一.TCP客户端API 1.创建套接字 2.connect连接服务器​编辑 3.send发送信息 4.recv接受信息 5.close 二.TCP服务器API 1.socket创建tcp套接字(监听套接字) 2.bind给服务器套接字绑定port,ip地址信息 3.listen监听并创建连接队列 4.accept提取客户端的连接 5.send,r…

包管理工具详解npm 、 yarn 、 cnpm 、 npx 、 pnpm(2023)

1、包管理工具npm (1)包管理工具npm: Node Package Manager,也就是Node包管理器;但是目前已经不仅仅是Node包管理器了,在前端项目中我们也在使用它来管理依赖的包;比如vue、vue-router、vuex、…

【Spring中MySQL连接错误】Cannot load driver class: com.mysql.cj.jdbc.Driver

Caused by: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method ‘dataSource’ threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver Caused by: java.lang.IllegalState…

干货满满的Python知识,学会这些你也能成为大牛

目录 1. 爬取网站数据 2. 数据清洗与处理 3. 数据可视化 4. 机器学习模型训练 5. 深度学习模型训练 6. 总结 1. 爬取网站数据 在我们的Python中呢,使用爬虫可以轻松地获取网站的数据。可以使用urllib、requests、BeautifulSoup等库进行数据爬取和处理。以下是…

(kubernetes)k8s常用资源管理

目录 k8s常用资源管理 1、创建一个pod 1)创建yuml文件 2)创建容器 3)查看所有pod创建运行状态 4)查看指定pod资源 5)查看pod运行的详细信息 6)验证运行的pod 2、pod管理 1)删除pod 2…

校验 GPT-4 真实性的三个经典问题:快速区分 GPT-3.5 与 GPT-4,并提供免费测试网站

现在已经有很多 ChatGPT 的套壳网站,以下分享验明 GPT-4 真身的三个经典问题,帮助你快速区分套壳网站背后到底用的是 GPT-3.5 还是 GPT-4。 大家可以在这个网站测试:https://ai.hxkj.vip,免登录可以问三条,登录之后无限…

“深入解析JVM:探索Java虚拟机的工作原理和优化技巧“

标题:深入解析JVM:探索Java虚拟机的工作原理和优化技巧 摘要:Java虚拟机(JVM)作为Java语言的核心,承担着将Java字节码转化为可执行代码的重要任务。本文将深入探索JVM的工作原理和优化技巧,帮助…

STM32 F103C8T6学习笔记1:开发环境与原理图的熟悉

作为一名大学生,学习单片机有一段时间了,也接触过嵌入式ARM的开发,但从未使用以及接触过STM32C8T6大开发使用,于是从今日开始,将学习使用它~ 本文介绍STM32C8T6最小系统开发环境搭建注意问题,STM32C8T6单片…

JAVA设计模式汇总

文章目录 一、设计模式分为三大类二、设计模式的六大原则三、汇总 一、设计模式分为三大类 创建型模式共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式…

【Docker晋升记】No.2 --- Docker工具安装使用、命令行选项及构建、共享和运行容器化应用程序

文章目录 前言🌟一、Docker工具安装🌟二、Docker命令行选项🌏2.1.docker run命令选项:🌏2.2.docker build命令选项:🌏2.3.docker images命令选项:🌏2.4.docker ps命令选项…

20.5 HTML 媒体

1. video视频标签 video视频标签: 是HTML中用于在网页上嵌入视频的元素.常用的视频标签属性: - src属性: 指定视频文件的URL地址. - controls属性: 用于显示视频播放控件(如播放按钮, 进度条等), 使用户能够控制视频的播放. - width和height: 指定视频的宽度和高度. - autopla…

Map Reduce教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语…

【Unity实战系列】Unity的下载安装以及汉化教程

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,怎么说呢,其实这才是我以后真正想写想做的东西,虽然才刚开始,但好歹,我总算是启程了。今天要分享…

3.4 Spring MVC注解

注解名称 注解说明 RequestMapping 用来处理请求地址映射的注解,可以在接口、类和方法上使用 value属性 表示请求地址,与path属性一致 method属性 表示接收HTTP请求方法,默认接收所有请求方法,请求包括GET、POST、PUT、DEL…

Java-网络编程

TCP TCP(Transmission Control Protocol)是一种在计算机网络中用于可靠数据传输的协议。它是一种面向连接的协议,确保数据在发送和接收之间的可靠性和有序性。以下是TCP是如何工作的简要概述: 建立连接: 当两台计算机…

使用RecyclerView构建灵活的列表界面

使用RecyclerView构建灵活的列表界面 1. 引言 在现代移动应用中,列表界面是最常见的用户界面之一,它能够展示大量的数据,让用户可以浏览和操作。无论是社交媒体的动态流、商品展示、新闻列表还是任务清单,列表界面都扮演着不可或…

第一百二十四天学习记录:C++提高:STL-deque容器(上)(黑马教学视频)

deque容器 deque容器基本概念 功能: 双端数组,可以对头端进行插入删除操作 deque与vector区别 vector对于头部的插入删除效率低,数据量越大,效率越低 deque相对而言,对头部的插入删除速度比vector快 vector访问元素的…

LeetCode150道面试经典题--同构字符串(简单)

1.题目 给定两个字符串 s 和 t ,判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上&#xff0c…

【LeetCode 算法】Minimum Falling Path Sum II 下降路径最小和 II-动态规划-SP

文章目录 Minimum Falling Path Sum II 下降路径最小和 II问题描述:分析代码DP Tag Minimum Falling Path Sum II 下降路径最小和 II 问题描述: 给你一个 n x n 整数矩阵 grid ,请你返回 非零偏移下降路径 数字和的最小值。 非零偏移下降路…