系列十二、数组

news2025/1/18 6:42:57

一、数组

1.1、概述

        数组是指可以同时存放固定长度的同一类型的数据。

1.2、数组的声明

        数组的声明有三种方式,具体如下:

1.2.1、方式一

/**
 * 声明数组的第一种方式
 *      cityArray:数组名,注意:不包括[]
 */
@Test
public void declareArrayTest1() {
	String cityArray[] = new String[4];
	cityArray[0] = "北京";
	cityArray[1] = "上海";
	cityArray[2] = "广州";
	cityArray[3] = "深圳";
	System.out.println(cityArray[0]);
}

1.2.2、方式二

/**
 * 声明数组的第二种方式
 *      cityArray:数组名,注意:不包括[]
 */
@Test
public void declareArrayTest2() {
	String[] cityArray = new String[4];
	cityArray[0] = "杭州";
	cityArray[1] = "武汉";
	cityArray[2] = "南京";
	cityArray[3] = "西安";
	System.out.println(cityArray[0]);
}

1.2.3、方式三

/**
 * 声明数组的第三种方式
 *      cityArray:数组名,注意:不包括[]
 */
@Test
public void declareArrayTest3() {
	String[] cityArray = {"金华","丽水","衢州","舟山"};
	System.out.println(cityArray[0]);
}

1.3、数组常见操作

/**
 * 数组常见操作
 * 1、排序
 *      Arrays.sort()可以对数字、字符进行排序,但是不能对中文字符排序
 * 2、判断某个数是否在数组中
 * 3、判断两个数组是否相同
 *      Arrays.equals(arr1,arr2):返回boolean类型,如果为true则代表两个数组相等,否则不相等
 * 4、将数组转换成人可以看懂的数据
 *      Arrays.toString(array)
 */
@Test
public void arraySortTest() {
	int[] scoreArray = {65, 36, 98, 85, 72, 99, 100};

	System.out.println("==================================================");
	StringBuilder sbBefore = new StringBuilder();
	StringBuilder sbAfter = new StringBuilder();
	for (int i : scoreArray) {
		sbBefore.append(i + "\t");
	}
	System.out.println("排序前:" + sbBefore);

	Arrays.sort(scoreArray);
	for (int i : scoreArray) {
		sbAfter.append(i + "\t");
	}
	System.out.println("排序后:" + sbAfter);

	System.out.println("==================================================");
	int existFlag = Arrays.binarySearch(scoreArray, 85);
	System.out.println("existFlag = " + existFlag); // existFlag = 3,如果存在返回的是索引所在位置,索引从0开始

	System.out.println("==================================================");
	int[] arr1 = {1, 2, 3};
	int[] arr2 = {1, 2, 3};
	Arrays.equals(arr1, arr2);

	System.out.println("==================================================");
	String[] cityArray = {"金华", "丽水", "衢州", "舟山"};
	System.out.println(cityArray);
	System.out.println(Arrays.toString(cityArray));
}

1.4、String vs StringBuffer vs StringBuilder

1.4.1、概述

        String修改字符串时,是在内存中创建一个新的字符串,并把新的地址指向给String对象,比较浪费空间。StringBuffer和StringBuilder是在初始时创建一个容器,当修改的时候只是修改容器中的内容,而不是创建一个新的容器,所以如果业务需要经常变更字符串的话,最好不要使用String。

1.4.2、StringBuffer vs StringBuilder

        StringBuffer是线程安全的,部分源码如下:

        StringBuilder是线程不安全的,部分源码如下:

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

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

相关文章

MySQL的导入导出及备份

一.准备导入之前 二.navicat导入导出 ​编辑 三.MySQLdump命令导入导出 四.load data file命令的导入导出 五.远程备份 六. 思维导图 一.准备导入之前 需要注意: 在导出和导入之前,确保你有足够的权限。在进行导入操作之前,确保目标数据…

C2-3.3.2 机器学习/深度学习——数据增强

C2-3.3.2 数据增强 参考链接 1、为什么要使用数据增强? ※总结最经典的一句话:希望模型学习的更稳健 当数据量不足时候: 人工智能三要素之一为数据,但获取大量数据成本高,但数据又是提高模型精度和泛化效果的重要因…

代码随想录-刷题第五十二天

300. 最长递增子序列 题目链接:300. 最长递增子序列 思路:动态规划五步曲: dp[i]表示从0到i,以nums[i]结尾的最长递增子序列的长度。 递推公式:if(nums[i]>nums[j]) dp[i] max(dp[i], dp[j] 1) 位置i的最长升序…

Spring cloud聚合父工程project

文章目录 本次微服务版本一. 新建父工程project1.1设置字符集utf-81.2注解生效激活1.3. Java8编译版本 二. 父工程 pom.xml 本次微服务版本 一. 新建父工程project 1.1设置字符集utf-8 1.2注解生效激活 1.3. Java8编译版本 二. 父工程 pom.xml <?xml version"1.0&quo…

HTTP 3xx状态码:重定向的场景与区别

HTTP 状态码是服务器响应请求时传递给客户端的重要信息。3xx 系列的状态码主要与重定向有关&#xff0c;用于指示请求的资源已被移动到不同的位置&#xff0c;需要采取不同的操作来访问。 一、301 Moved Permanently 定义&#xff1a; 服务器表明请求的资源已永久移动到一个新…

Python多线程同步

同步条件(Event) 在Python中&#xff0c;多线程同步可以通过threading模块中的Event对象来实现。Event对象允许一个或多个线程等待某个事件的发生&#xff0c;当事件发生时&#xff0c;等待的线程将被唤醒。 event.isSet()&#xff1a;返回event的状态值 event.wait()&#x…

Vue-11、Vue计算属性

Vue计算属性是Vue实例的属性&#xff0c;用来根据已有的数据进行计算得到新的数据。计算属性的值会根据它的依赖缓存起来&#xff0c;在依赖没有发生改变时直接返回缓存的值&#xff0c;提高了性能。 计算属性的定义方式为在Vue实例中使用computed关键字&#xff0c;并将计算属…

Pycharm中如何配置python环境(conda)

首先在pycharm中点击 "File" > "Settings" 再次点击如下操作&#xff1a; 点击Python Interpreter的最右侧按钮&#xff0c;点击Show All... 找到python文件 最后点击OK

YOLOv8改进 | 主干篇 | 12月最新成果UniRepLknet特征提取网络(附对比试验效果图)

一、本文介绍 本文给大家带来的改进机制是特征提取网络UniRepLknet,其也是发表于今年12月份的最新特征提取网络,该网络结构的重点在于使用Dilated Reparam Block和大核心指导原则,强调了高效的结构进行通道间通讯和空间聚合,以及使用带扩张的小核心进行重新参数化,该网络…

实现LCM在docker之间的通信

目录 1.docker容器互联 新建网络 连接容器 2.设置环境变量 3.在两个docker之间实现通信 1.docker容器互联 新建网络 $ docker network create -d bridge test-net 连接容器 运行一个容器并连接到新建的 test-net 网络: $ docker run -itd --name lcm_1 --network tes…

Postman工具初学一篇快速入门教程

文章目录 下载安装注册登录CollectionFolderRequestGet请求Post请求Header设置Response响应 EnvironmentsGlobal环境变量其他环境变量Collection变量变量使用同名变量的优先级 Postman内置变量Pre-request script和Test script脚本设置、删除和获取变量获取请求参数获取响应数据…

无失真编码之算术编码的python实现——数字图像处理

原理 无失真编码中的算术编码是一种用于将输入数据进行高效压缩的方法&#xff0c;同时保留了原始数据的完整性。 算术编码的实现过程如下&#xff1a; 数据分段&#xff1a;首先&#xff0c;将要进行编码的数据划分为一个个符号或字符。每个符号可以是文本中的一个字母、一幅…

数学建模-Matlab R2022a安装步骤

软件介绍 MATLAB是一款商业数学软件&#xff0c;用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境&#xff0c;主要包括MATLAB和Simulink两大部分&#xff0c;可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程…

jenkins构建git项目timeout

问题点&#xff1a; Started by user unknown or anonymous Running as SYSTEM Building in workspace /var/jenkins_home/workspace/test-one using credential f28d956-8ee1-4f20-a32b-06879b487c70 Cloning the remote Git repository Cloning repository http://git.cc.co…

[足式机器人]Part2 Dr. CAN学习笔记 - Ch02动态系统建模与分析

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记 - Ch02动态系统建模与分析 1. 课程介绍2. 电路系统建模、基尔霍夫定律3. 流体系统建模4. 拉普拉斯变换&#xff08;Laplace&#xff09;传递函数、微分方程4.1 Laplace Transform 拉式变换4.2 收…

关于进制在输出时的转换【C语言】

目录 输入输出格式参考文章 1. 十进制整数作为八进制/十六进制输出 2. 八进制整数作为十进制/十六进制输出 3. 十六进制整数作为八进制/十进制输出 我们处理的整数通常用十进制表示&#xff0c;在计算机内存中是以二进制补码形式存储&#xff0c;但通常二进制表示的整数比较…

C#封装服务

C#封装服务 新建服务项目&#xff1b;重构 OnStart 和 OnStop using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Linq; using System.ServiceProcess; using System.Text; using S…

基础数据结构第十期 哈希表(数组+STL)

前言&#xff1a; 哈希表是一种非常重要的数据结构&#xff0c;希望大家都能够熟练掌握&#xff01;&#xff01;&#xff01; 一、哈希表的基本内容 哈希表&#xff08;Hash Table&#xff09;&#xff0c;也被称为哈希映射&#xff08;Hash Map&#xff09;或字典&#xf…

Redis底层原理

持久化 Redis虽然是个内存数据库,但是Redis支持RDB和AOF两种持久化机制,将数据写往磁盘,可以有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。 RDB RDB持久化是把当前进程数据生成快照保存到硬盘的过程。所谓内存快照,就是…

vue2使用文件上传读取本地照片并转化base64格式进行展示

创建个vue2项目,直接把代码放到一个vue2页面内运行就好,下面代码拿来即用 <template><div><div class"replace_menu_mask" click"closeMenu"><img :src"replaceImg" alt"" style"width: 100%;">&l…