Java基础学习笔记-4

前言

本学习笔记将介绍Java中的数组概念以及各种与数组相关的操作和示例代码。
Java基础学习笔记-1
Java基础学习笔记-2
Java基础学习笔记-3

Demo01 - 声明和初始化数组

public class Demo01 {public static void main(String[] args) {// 声明一个数组,指明了里面只能存放整数int[] arr;// 赋值arr = new int[5];// 给数组里面的5个成员,都分别给个成绩// arr[0] arr[1] arr[2] arr[3] arr[4]arr[0] = 60;arr[1] = 61;arr[2] = 62;arr[3] = 63;arr[4] = 64;// 使用System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println(arr[3]);System.out.println(arr[4]);}
}

这个示例演示了如何声明、分配内存和初始化一个整数数组,并打印数组的元素。

Demo02 - 声明和初始化数组的简化形式

public class Demo02 {public static void main(String[] args) {// 声明 分配空间 赋值int[] arr = new int[]{81,82,83,84,85};int[] arr2 = {81,82,83,84,85}; // 如果声明、分配空间、赋值是在一行,可以省略new int[]System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println(arr[3]);System.out.println(arr[4]);}
}

这个示例展示了声明、初始化数组的简化形式,同时演示了如何直接赋值给数组元素。

Demo03 - 数组长度和遍历数组

public class Demo03 {public static void main(String[] args) {System.out.println(args.length); // 0// Java的数组,天然有一个只读属性,它的名字叫lengthint[] arr = {81,82,83,84,85,86,87,88};System.out.println(arr.length);System.out.println("数组里面的信息:");for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}
}

这个示例介绍了如何获取数组的长度属性和使用循环遍历数组。

Demo04 - 使用Scanner处理数组和查找元素

import java.util.Scanner;public class Demo04 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[] arr = {8, 4, 2, 1, 23, 344, 12};int sum = 0;for (int i = 0; i < arr.length; i++) {sum += arr[i]; // 累计System.out.println(arr[i]); // 输出}System.out.println("和:" + sum);System.out.print("输入一个数:");int number = scanner.nextInt();boolean bFound = false;for (int i = 0; i < arr.length; i++) {if (number == arr[i]) {bFound = true;break;}}System.out.println(bFound ? "找到" : "没有找到"); // 唯一的三元操作符}
}

这个示例演示了如何使用Scanner处理用户输入以及如何查找数组中的元素。

Demo05 - 输入和计算金额数组

import java.util.Scanner;public class Demo05 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);double[] arrJingE = new double[5];for (int i = 0; i < arrJingE.length; i++) {System.out.print("请输入第"+(i+1)+"笔的金额:");arrJingE[i] = scanner.nextDouble();}System.out.println("序号\t金额");double sum = 0.0;for (int i = 0; i < arrJingE.length; i++) {System.out.println((i+1) + "\t" + arrJingE[i]);sum += arrJingE[i];}System.out.println("总金额\t" + sum);}
}

这个示例允许用户输入五个金额,并将它们存储在一个数组中,然后计算总金额并打印出来。

Demo06 - 数组排序

import java.util.Arrays;public class Demo06 {public static void main(String[] args) {int[] arr = {8, 4, 2, 1, 23, 344, 12};
//        for (int i = 0; i < arr.length; i++) {
//            System.out.println(arr[i]);
//        }Arrays.sort(arr); // 排序System.out.println(arr); // 打印数组名时,输出的是 [代表数组 I代表整数 @8位十六进制代表内存地址System.out.println(Arrays.toString(arr));}
}

这个示例展示了如何使用Arrays.sort()方法对数组进行排序,并使用Arrays.toString()方法打印排序后的数组。

Demo07 - 数组操作

import java.util.Arrays;/*
boolean equals(array1,array2)	比较array1和array2两个数组是否相等
void fill(array,val)	        把数组array所有元素都赋值为val
copyOf(array,length)	        把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
int binarySearch(array, val)	查询元素值val在数组array中的下标(要求数组中元素已经按升序排列)*/
public class Demo07 {public static void main(String[] args) {int[] arr1 = new int[]{8, 4, 2, 1, 23, 344, 12};int[] arr2 = new int[]{8, 4, 2, 1, 23, 344, 12};System.out.println(Arrays.equals(arr1, arr2));Arrays.fill(arr1,  11);System.out.println(Arrays.toString(arr1));int[] arr3 = Arrays.copyOf(arr2, 8);System.out.println(Arrays.toString(arr3));Arrays.sort(arr2); // [1, 2, 4, 8, 12, 23, 344]System.out.println(Arrays.toString(arr2));int pos = Arrays.binarySearch(arr2, 0); // 没有找到,返回插入点的下标取负数再-1System.out.println("pos: " + pos);}
}

这个示例提供了几种有用的数组操作,包括比较数组是否相等、填充数组、复制数组以及在排序数组中搜索元素等操作。

Demo08 - 字符数组的排序和逆序

import java.util.Arrays;public class Demo08 {public static void main(String[] args) {char[] arr = {'a', 'c', 'u', 'b', 'e', 'p', 'f', 'z'};System.out.print("原字符序列:");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}Arrays.sort(arr);System.out.println();System.out.print("升续排序后:");for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();System.out.print("逆序输出后:");for (int i = arr.length - 1; i >= 0; i--) {System.out.print(arr[i] + " ");}}
}

这个示例展示了如何对字符数组进行排序,并在排序后打印升序和降序的结果。

Demo09 - 嵌套循环打印九九乘法表

public class Demo09 {public static void main(String[] args) {// 二重循环,循环中嵌套循环for (int i=1; i<=9; i++) {for (int j=1; j<=i; j++) {System.out.print(j+"*"+i+"="+i*j+"\t"); // 行内效果}System.out.println(); // 换行}}
}

这个示例演示了如何使用嵌套循环打印九九乘法表。外层循环控制行数,内层循环控制每行中的元素。

Demo10 - 冒泡排序的实现

import java.util.Arrays;public class Demo10 {public static void main(String[] args) {// 二重循环int[] arr = {10, 8, 4, 5, 2, -1, 56, 33};// 模拟Arrays.sort(arr)方法// 外层循环 n-1for (int i=0; i<arr.length-1; i++) {// 内层循环 n-1-ifor (int j=0; j<arr.length-1-i; j++) {if (arr[j] > arr[j+1]) {int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}System.out.println(Arrays.toString(arr));}
}

这个示例展示了冒泡排序算法的实现。它使用了嵌套循环来比较和交换数组中的元素,以实现排序。

Demo11 - 遍历二维数组

public class Demo11 {public static void main(String[] args) {int[][] arr = {{10, 8, 4, 5, 2, -1, 56, 33, 1},{110, 18, 14, 15, 12, -11, 156, 133, 11},{1110, 118, 114, 115, 112, -111, 1156, 1133, 113}};// 二重循环// 外层循环 行数for (int i=0; i<arr.length; i++) { // arr.length是3// 内层循环 行内数据for (int j=0; j<arr[i].length; j++) { // arr[0]第一行数组 arr[1]第二行数组 arr[2]第三行数组System.out.print(arr[i][j] + "\t");}System.out.println(); // 换行}}
}

这个示例演示了如何使用嵌套循环遍历二维数组。外层循环控制行数,内层循环遍历每行中的元素。

Demo12 - 计算班级平均成绩

import java.util.Scanner;public class Demo12 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 二重循环 外循环班级 内循环学生for (int i=1; i<=3; i++) { // 外循环班级System.out.println("请输入第" + i + "班级的成绩");int sum = 0; // 就近原则for (int j=1; j<=4; j++) { // 内循环学生System.out.print("第" + j + "个学生的成绩:");sum += scanner.nextInt();}System.out.println("第" + i + "班级的平均成绩:" + sum / 4.0);}}
}

这个示例演示了如何使用嵌套循环计算不同班级学生的平均成绩。外层循环迭代每个班级,而内层循环迭代每个学生。

Demo13 - 打印星号矩形

public class Demo13 {public static void main(String[] args) {// 二重循环 外循环行 内循环*int number = 3;for (int i=1; i<=number; i++) {for (int j=1; j<=number; j++) {System.out.print("*");}System.out.println();}}
}

这个示例展示了如何使用嵌套循环打印一个矩形图案,其中外层循环控制行数,内层循环打印星号。

Demo14 - 打印倒序星号矩形

public class Demo14 {public static void main(String[] args) {// 二重循环 外循环行 内循环*int number = 5;for (int i=1; i<=number; i++) {for (int j=1; j<=number-i+1; j++) {System.out.print("*");}System.out.println();}}
}

这个示例演示了如何使用嵌套循环打印一个倒序的星号矩形,其中外层循环控制行数,内层循环打印星号。

Demo15 - 打印金字塔图案

public class Demo15 {public static void main(String[] args) {// 二重循环 外循环行 内循环*int number = 5;for (int i=1; i<=number; i++) {for (int j=1; j<=number-i; j++) {System.out.print(" ");}for (int j=1; j<=2*i-1; j++) {System.out.print("*");}System.out.println();}}
}

这个示例演示了如何使用嵌套循环打印一个金字塔形状的图案,其中外层循环控制行数,内层循环打印星号和空格。

总结

这些示例代码涵盖了Java数组的基本概念和常见操作。学习数组是Java编程的基础,它们用于存储和处理大量数据。通过这些示例,您可以了解如何声明、初始化、访问、遍历和操作数组,这将有助于您在Java中处理各种数据集合。希望这些示例对您的学习和开发过程有所帮助!

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

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

相关文章

一分钟图情论文:《原始的布拉德福定律》

天津大学图书馆的研究馆员范铮先生&#xff0c;在《图书情报工作》第一期中发表了题为《原始的布拉德福定律》的文章&#xff0c;详细介绍了布拉德福定律的历史背景、调查统计数据、文献曲线以及理论推导等关键内容。这篇文章让我们能够深入了解布拉德福定律的本质和原始构想。…

概率论与数理统计学习笔记(7)——全概率公式与贝叶斯公式

目录 1. 背景2. 全概率公式3. 贝叶斯公式 1. 背景 下图是本文的背景内容&#xff0c;小B休闲时间有80%的概率玩手机游戏&#xff0c;有20%的概率玩电脑游戏。这两个游戏都有抽卡环节&#xff0c;其中手游抽到金卡的概率为5%&#xff0c;端游抽到金卡的概率为15%。已知小B这天抽…

Windows环境下Springboot3+Graalvm+Idea 打包成原生镜像 踩坑

https://github.com/oracle/graal/https://github.com/graalvm/graalvm-ce-builds/releases/对应关系graalvm-ce-java17-windows-amd64-X.X.X.zipnative-image-installable-svm-java17-windows-amd64-X.X.X.jar本人使用:graalvm-ce-java17-windows-amd64-23.0.1.zipnative-imag…

蓝桥杯官网练习题(纸牌三角形)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 A,2,3,4,5,6,7,8,9 共 99 张纸牌排成一个正三角形&#xff08;A 按 1 计算&#xff09;。要求每个边的和相等。 下图就是一种排法。 这样的排法可能会有很多。 如果…

JavaScript 设计模式 – 通过示例进行解释

大家好&#xff01;在本文中&#xff0c;我将解释什么是设计模式以及它们为何有用。 目录 什么是设计模式&#xff1f; 创意设计模式 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构设计模式 适配器模式 装饰模式 立面图案 代理模式 行为设计模式 责任链模式 迭…

PostgreSQL docker compose安装配置

docker-compose.yml如下&#xff1a; version: 3services:postgres:image: postgres:15.4healthcheck:test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]timeout: 45sinterval: 1…

修改Docker镜像默认下载地址

1、安装完docker desktop后&#xff0c;先不要打开 2、新建目录 D:\ProgramData\Docker 3、在C:\Users\你的用户名\AppData\Local下&#xff0c;打开cmd或者powershell执行以下命令&#xff0c;命令语法略有不同。 powershell命令&#xff1a; cmd /c mklink /J Docker D:\Pro…

1-5 AUTOSAR数据交换文件ARXML

目录 一、Arxml文件 二、各类ARXML文件 一、Arxml文件 arxml文件是AUTOSAR&#xff08;Automotive Open System Architecture&#xff09;标准定义的XML文件&#xff0c;用于描述汽车电子系统中的软件组件、通信接口和参数配置等信息。 arxml文件的主要作用是在AUTOSAR架构下…

golang教程 beego框架笔记一

安装beego 安装bee工具 beego文档 # windos 推荐使用 go install github.com/beego/bee/v2master go get -u github.com/beego/bee/v2masterwindows使用安装bee工具时碰到的问题&#xff1b; 环境配置都没有问题&#xff0c;但是执行官网的命令&#xff1a;go get -u github…

打造高效的私密论坛网站:Cpolar内网穿透+HadSky轻量级搭建指南

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3 Cpolar稳定隧道&#xff08;本地设置&#xff09;2.4 公网访问测试 总结 前言 经过多年的基础…

大数据和数据要素有什么关系?

大数据与数据要素之间存在密切的关系。大数据是指海量、多样化、高速生成的数据&#xff0c;而数据要素是指构成数据的基本元素或属性。数据要素包括但不限于数据的类型、结构、格式、单位、精度等。 大数据的产生和应用离不开数据要素的支持。数据要素确定了数据的基本特征和…

【网络基础】——HTTPS

目录 HTTPS背景知识 HTTPS是什么&#xff1f; 加密解密 为什么要加密 常见的加密方式 对称加密 非对称加密 数据摘要&&数据指纹 数字签名 HTTPS工作过程探究 方案1&#xff1a;只使用对称加密 方案2&#xff1a;只使用非对称加密 方案3&#xff1a;双方…

3分钟看懂NPDP| 超全版

NPDP考试是由美国产品开发与管理协会(PDMA)发起的产品经理国际资格认证考试&#xff0c;在中国国内由外专局培训中心举办考试&#xff0c;考生在报名参加NPDP考试前&#xff0c;需要了解NPDP&#xff0c;下面为大家详细介绍&#xff0c;供大家参考。 什么是NPDP? 产品经理国际…

RabbitMQ实现数据库与ElasticSearch的数据同步和分享文件过期处理

&#x1f388; 1 参考文档 RabbitMQ实现数据库与ElasticSearch的数据同步 | Hannya。-CSDN 企业级开发项目实战——基于RabbitMQ实现数据库、elasticsearch的数据同步 | 波总说先赚它一个小目标-CSDN SPringBoot集成RabbitMQ实现30秒过期删除功能 | 军大君-CSDN &#x1f50d; …

conda和Python的虚拟环境如何结合使用,以及二者之间到底有什么区别?

问题描述 今天在复现streamlit的代码时&#xff08;参考Streamlit 讲解专栏&#xff08;一&#xff09;&#xff1a;安装以及初步应用&#xff09;&#xff0c;根据这篇博文指导&#xff0c;要先用以下指令创建一个虚拟环境&#xff1a; # 创建虚拟环境&#xff08;使用venv&a…

【python】读取.dat格式文件

import binascii# 打开二进制文件以只读二进制模式 with open(EXCEL/文件.dat, rb) as file:binary_data file.read()print(binary_data)# 将二进制数据转换为十六进制字符串 hex_data binascii.hexlify(binary_data).decode(utf-8) # binary_data 现在包含了文件的二进制内容…

git标签基础

打标签:git可以给仓库历史中某个提交打上标签,以示重要,比较有代表人们会使用这个功能来标记发布结点(V1.0,V2.0) 列出本地标签: git tag --list git tag -l "V1.85*" 列出远端仓库的中所有标签 git ls-remote --tags给标签添加一些描述信息 git tag -a v1.3 -m …

热释电矢量传感器设计

1 概述 使用4个热释电传感器组成一个2X2的矩阵。通过曲线的相位差、 峰峰值等特征量来计算相关信息。本文使用STM32单片机设计、制作了热释电传感器矩阵&#xff1b;使用C#.NET设计了上位机软件。为以上研究做了试验平台。 2 硬件电路设计 2.1 热释电传感器介绍 热释电红外…

c++异步框架workflow分析

简述 workflow项目地址 &#xff1a; https://github.com/sogou/workflow workflow是搜狗开源的一个开发框架。可以满足绝大多数日常服务器开发&#xff0c;性能优异&#xff0c;给上层业务提供了易于开发的接口&#xff0c;却只用了少量的代码&#xff0c;举重若轻&#xff…

电子元器件选型与实战应用—04 LDO选型、特性及应用

文章目录 1. 参数详解1.1 输出电流1.2 输入电压1.3 输出电压1.4 功耗1.5 PSRR1.6 精度1.7 耗散功率1.8 热阻2. 特性详解2.1 OVP2.2 UVLO2.3 压差2.4 线性瞬态响应2.5 动态负载调整2.6 效率2.7 软启动2.8 输出自放电3. 工作原理4. 和DC-DC区别5. 使能脚设计6. layout7. 二极管和…