当前位置: 首页 > news >正文

Java从入门到精通-数组(二)

4.数组的基本操作

数组的基本操作包括遍历数组、填充替换数组元素、对数组进行排序、复制数组以及查询数组中的元素。

• 4.1 遍历数组

遍历数组是访问数组中所有元素的过程,通常使用循环完成。

使用 for 循环遍历数组:
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {System.out.println(numbers[i]);
}
使用增强型 for-each 循环遍历数组:
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {System.out.println(num);
}

• 4.2 填充替换数组元素

可以通过循环来填充和替换数组中的元素。

int[] numbers = new int[5];
for (int i = 0; i < numbers.length; i++) {numbers[i] = i + 1; // 填充数组元素
}

• 4.3 对数组进行排序

Java提供了多种排序算法来对数组进行排序,例如冒泡排序、选择排序和快速排序。以下是一个使用Arrays类的示例来对数组进行排序:

int[] numbers = {5, 2, 9, 1, 5};
Arrays.sort(numbers); // 对数组进行升序排序

• 4.4 复制数组

可以使用不同的方法来复制一个数组到另一个数组。以下是使用System.arraycopy的示例:

int[] sourceArray = {1, 2, 3};
int[] targetArray = new int[sourceArray.length];
System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);

• 4.5查询数组

可以使用循环遍历数组来查找特定元素,或者使用搜索算法来查找元素的位置。以下是一个线性搜索的示例:

int[] numbers = {10, 20, 30, 40, 50};
int target = 30;
int index = -1;for (int i = 0; i < numbers.length; i++) {if (numbers[i] == target) {index = i; // 找到目标元素的索引break;}
}if (index != -1) {System.out.println("目标元素 " + target + " 在索引 " + index + " 处找到。");
} else {System.out.println("目标元素 " + target + " 未找到。");
}

5.数组排列算法

数组排列算法是一种用于按照特定顺序重新排列数组元素的算法。在Java中,有多种排序算法可供选择,每种算法都有其优点和适用场景。

• 5.1 冒泡排序

冒泡排序是一种基本的排序算法,它重复地遍历数组,比较相邻的两个元素,并根据需要交换它们,直到整个数组有序。冒泡排序适用于小型数据集。

public static void bubbleSort(int[] arr) {int n = arr.length;boolean swapped;do {swapped = false;for (int i = 0; i < n - 1; i++) {if (arr[i] > arr[i + 1]) {// 交换 arr[i] 和 arr[i+1] 的位置int temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;swapped = true;}}} while (swapped);
}

• 5.2 直接选择排序

直接选择排序是一种简单的排序算法,它在未排序的部分中选择最小(或最大)的元素,并将其放在已排序部分的末尾。直接选择排序适用于小型数据集。

public static void selectionSort(int[] arr) {int n = arr.length;for (int i = 0; i < n - 1; i++) {int minIndex = i;for (int j = i + 1; j < n; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;}}// 交换 arr[i] 和 arr[minIndex] 的位置int temp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = temp;}
}

• 5.3 反转排序

反转排序是一种简单的排序算法,它将数组元素的顺序反转,即将第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换,以此类推。

public static void reverseSort(int[] arr) {int n = arr.length;for (int i = 0; i < n / 2; i++) {// 交换 arr[i] 和 arr[n-i-1] 的位置int temp = arr[i];arr[i] = arr[n - i - 1];arr[n - i - 1] = temp;}
}

6.实践与练习

• 6.1. 数组概述

  • 练习1: 创建一个整数数组,存储您喜欢的5个数字,并编写代码打印出这些数字。

• 2. 一维数组

  • 练习2: 创建一个字符串数组,包含一些水果的名称,然后使用循环遍历并打印数组中的水果名称。
  • 练习3: 编写一个程序,接受用户输入的一组数字,然后计算它们的平均值。

• 3. 二维数组

  • 练习4: 创建一个二维整数数组来表示一个九宫格数独游戏的初始状态,并编写代码打印出数独的初始状态。
  • 练习5: 编写一个程序,生成一个3x3的随机迷宫地图,其中包括起点、终点和墙壁。

• 4. 数组的基本操作

  • 练习6: 编写一个程序,接受用户输入的一组数字,并查找其中的最大值和最小值。
  • 练习7: 创建两个整数数组,分别表示两个向量的坐标,然后编写代码计算这两个向量的点积(内积)。

• 5. 数组排列算法

  • 练习8: 使用冒泡排序或选择排序对一个整数数组进行升序排列,并打印排序后的数组。
  • 练习9: 编写一个程序,生成一个包含10个随机整数的数组,并使用快速排序算法对其进行排序。

• 6. 综合实践

  • 练习10: 创建一个简单的任务管理程序,使用数组来存储任务的描述和状态(未完成/已完成),并提供选项来添加、查看和标记任务的状态。

(以上是十个小问题,下次文章回答)

相关文章:

Java从入门到精通-数组(二)

4.数组的基本操作 数组的基本操作包括遍历数组、填充替换数组元素、对数组进行排序、复制数组以及查询数组中的元素。 • 4.1 遍历数组 遍历数组是访问数组中所有元素的过程&#xff0c;通常使用循环完成。 使用 for 循环遍历数组&#xff1a; int[] numbers {1, 2, 3, 4…...

深入剖析HTTP和HTTPS代理在爬虫中的应用价值

在当今信息时代&#xff0c;数据是无处不在且极其宝贵的资源。对于从互联网上获取大量结构化或非结构化数据的需求而言&#xff0c;网络爬虫成为一种强有力的工具。然而&#xff0c;在实际操作过程中&#xff0c;我们常常会面临许多挑战和限制。   其中一个主要问题就是目标网…...

SQL语句分类及编写规范

目录 1.SQL分类 数据定义语言 DDL 数据操纵语言 DML 数据查询语言 DQL 数据控制语言 DCL 事务控制语言 TCL 2.SQL语句的编写规范 SQL语句不区分大小写 SQL语句关键词建议大写 SQL语句每句话用分号结尾 MySQL从小白到总裁完整教程目录:https://blog.csdn.net/wei…...

02-zookeeper分布式锁案例

1 Zookeeper分布式案例 1.1 Zookeeper分布式锁原理 核心思想&#xff1a;当客户端要获取锁&#xff0c;则创建节点&#xff0c;使用完锁&#xff0c;则删除该节点。 当我们假设根节点/ 下有/locks节点时 1&#xff09;客户端获取锁时&#xff0c;在locks节点下创建临时顺序…...

【Spring传播机制底层原理】

一、Spring的事务传播机制 Spring的事务传播机制是Spring框架中最核心的机制之一&#xff0c;它能够灵活地控制多个事务方法的执行顺序、提交或回滚等行为。在Spring中&#xff0c;事务是通过TxManager来管理的&#xff0c;TxManager是一个接口&#xff0c;提供了开启、提交、…...

python通过tkinter制作词云图工具

一、基本功能 1.采取上传文本文档&#xff08;仅支持.txt格式&#xff09;的方式统计词频 2.背景图形样式可选择已经设定好的&#xff0c;也可选择本地上传的&#xff08;支持.png .jpg .jpeg格式&#xff09; 3.本地上传的图片需要进行抠图处理&#xff0c;并将抠图结果保存…...

Java-钉钉订阅事件

文章目录 背景什么是钉钉订阅事件钉钉订阅事件的应用场景 整体思路查看钉钉文档 什么是钉钉回调钉钉回调具体实操创建自己的应用钉钉回调开发过程中遇到的问题 总结 背景 最近需要做一个业务&#xff1a;钉钉组织架构下添加人员之后&#xff0c;要对该人员的数据信息做一个处理…...

【DataV/echarts】vue中使用,修改地图和鼠标点击部分的背景色

引入&#xff1a;使用 DataV 引入地图的教程是参考别人的&#xff0c;主要介绍修改地图相关的样式&#xff1b; 引入地图 是参考别人的&#xff0c;这里自己再整理一遍&#xff0c;注意需要安装 5 版本以上的 echarts&#xff1b; DataV 网址&#xff1a;https://datav.aliyun.…...

系统设计类题目汇总四

25 十个异步入库任务&#xff0c;如何保证他们原子入库? 了解了你的问题背景&#xff0c;确保10个异步入库任务原子性执行&#xff08;即要么全部成功&#xff0c;要么全部失败&#xff09;有以下几种方法&#xff1a; 数据库事务&#xff1a; 如果所有的入库操作都是在同一个…...

【C++心愿便利店】No.5---构造函数和析构函数

文章目录 前言一、类的6个默认成员函数二、构造函数三、析构函数 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到我的乱七八糟小星球&#x1f31d; &#x1f4cb;专栏&#xff1a;C 心愿便利店 &#x1f511;本章内容&#xff1a;类…...

微软研究院团队获得首届AI药物研发算法大赛总冠军

编者按&#xff1a;AI 药物研发是人工智能未来应用的重要方向之一。自新冠病毒&#xff08;SARS-CoV-2&#xff09;首次爆发以来&#xff0c;新冠病毒的小分子药物研发备受关注&#xff0c;于近期举行的首届 AI 药物研发算法大赛便聚焦于此。在比赛中&#xff0c;来自微软研究院…...

redis实战篇之导入黑马点评项目

1. 搭建黑马点评项目 链接&#xff1a;https://pan.baidu.com/s/1Q0AAlb4jM-5Fc0H_RYUX-A?pwd6666 提取码&#xff1a;6666 1.1 首先&#xff0c;导入SQL文件 其中的表有&#xff1a; tb_user&#xff1a;用户表 tb_user_info&#xff1a;用户详情表 tb_shop&#xff1a;商户…...

【C++】详解红黑树并模拟实现

前言&#xff1a; 上篇文章我们一起学习了AVL树比模拟实现&#xff0c;我们发现AVL树成功地把时间复杂度降低到了O(logN)。但是同时我们不难发现一个问题&#xff0c;在构建AVL树中我们也付出了不小的代价&#xff0c;频繁的旋转操作导致效率变低。为了解决这个问题&#xff0c…...

Matlab图像处理-最大类间方差阈值选择法(Otsu)

基本思想 最大类间方差阈值选择法又称为Otsu 算法&#xff0c;该算法是在灰度直方图的基础上用最小二乘法原理推导出来的&#xff0c;具有统计意义上的最佳分割阈值。它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分&#xff0c;使两部分之间的方差取得最大值&#x…...

Spring Cloud(Finchley版本)系列教程(三) 服务消费者(Feign)

Spring Cloud(Finchley版本)系列教程(三) 服务消费者(Feign) 一、Feign和OpenFeign的对比 Feign是Netflix公司写的,是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端,是SpringCloud中的第一代负载均衡客户端。OpenFeign是SpringCloud自己研发的,在Feign的基础上支…...

AI图片生成 discord 使用midjourney

参考: 不用找咒语了&#xff01;Midjourney图生文功能特征解析&#xff0c;玩转Describe命令&#xff0c;快速搞定AI绘画_哔哩哔哩_bilibili 1 登录 discord 2 点发现 找 midjourney 3 创建 服务器 -> 亲自创建 4 选 仅供我和我的朋友使用 5 起个 服务器名字 6 加bot 由于…...

gitlab 点击Integrations出现500错误

背景&#xff1a;在新服务器重新搭建了gitlab&#xff0c;并导入原来gitlab的备份&#xff0c;在项目中点击点击Integrations出现500错误。 解决方法&#xff1a;1.进入新服务器&#xff0c;将 /etc/gitlab/gitlab-secrets.json重命名为 /etc/gitlab/gitlab-secrets.json.bak …...

【2023高教社杯】A题 定日镜场的优化设计 问题分析及数学模型

【2023高教社杯】A题 定日镜场的优化设计 问题分析及数学模型 1 题目 构建以新能源为主体的新型电力系统&#xff0c;是我国实现“碳达峰”“碳中和”目标的一项重要措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站&#xff08;…...

rac异常hang死故障分析(sskgxpsnd2)

x86虚拟化的平台麒麟系统的一套RAC。事件梳理20:24左右&#xff0c;发现一个节点hang死&#xff0c;关闭操作没有响应。关闭hang死节点&#xff0c;另一个节点也发生hang死&#xff0c;然后重启了另一个节点。 无效分析部分 检查gi的alert日志 有一个很大跨度的时间回退 再看…...

2023.9.7 关于 TCP / IP 的基本认知

目录 网络协议分层 TCP/IP 五层&#xff08;四层&#xff09;模型 应用层 传输层 网络层&#xff08;互联网层&#xff09; 数据链路层&#xff08;网络接口层&#xff09; 物理层 网络数据传输的基本流程 网络协议分层 为什么需要分层&#xff1f; 分层之后&#xff0c…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...

HTML中各种标签的作用

一、HTML文件主要标签结构及说明 1. <&#xff01;DOCTYPE html> 作用&#xff1a;声明文档类型&#xff0c;告知浏览器这是 HTML5 文档。 必须&#xff1a;是。 2. <html lang“zh”>. </html> 作用&#xff1a;包裹整个网页内容&#xff0c;lang"z…...