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

网站基本建设是什么新闻稿件代发平台

网站基本建设是什么,新闻稿件代发平台,成都品牌设计,单页网站怎么制作教程🌟 想系统化学习 Java 编程?看看这个:[编程基础] Java 学习手册 在上一章中我们介绍了如何声明与创建数组,还介绍了数组的基本使用方式。本章我们将在上一章的基础上,拓展数组的使用方式(可能会涉及一些思…

🌟 想系统化学习 Java 编程?看看这个:[编程基础] Java · 学习手册

在上一章中我们介绍了如何声明与创建数组,还介绍了数组的基本使用方式。本章我们将在上一章的基础上,拓展数组的使用方式(可能会涉及一些思维题)。

0x01:数组的应用 — 遍历数组元素

0x0101:普通 for 循环遍历数组元素

使用 for 循环结合数组的 length 属性,我们可以很轻松的打印数组的每个元素:

public class TestVar {public static void main(String[] args) {int[] arr = {10, 20, 30, 40};
​for (int i = 0; i < arr.length; i++) {System.out.println("arr 数组的第 " + i + " 个元素: " + arr[i]);}}
}

0x0102:增强 for 循环遍历数组元素

除了普通 for 循环,对于数组,我们还可以使用增强 for 循环来简单的遍历数组的元素内容。只不过此时我们无法使用跟索引有关的操作:

public class TestVar {public static void main(String[] args) {int[] arr = {10, 20, 30, 40};
​// 对 arr 数组进行遍历,遍历出来的每个元素都用 int 型的 num 接收int index = 1; // 数组当前的下标for (int num : arr) {System.out.println("arr 数组的第 " + index + " 个元素: " + num);index++;}}
}

0x02:数组的应用 — 数组最值问题

0x0201:引用类型 — 地址传递

在前面的章节中,我们介绍了方法,说 Java 是 值传递 。但那个时候说法其实是不完全的,这里补全一下:

  • 如果使用的是基本数据类型: 那么传递的就是字面值。

  • 如果使用的是引用数据类型: 那么传递的就是地址值。

好巧不巧,我们数组,就是一个引用数据类型。看下面这个例子(我们在函数中的修改,也将影响到主函数中数组的内容):

public class TestVar {public static void main(String[] args) {int[] arr = {10, 20, 30, 40};
​changeArryLast(arr); // 调用方法// 对 arr 数组进行遍历,遍历出来的每个元素都用 int 型的 num 接收int index = 1; // 数组当前的下标for (int num : arr) {System.out.println("arr 数组的第 " + index + " 个元素: " + num);index++;}}
​public static void changeArryLast(int[] arr) {// 改变数组最后一位的值为 17arr[arr.length - 1] = 17;}
}

0x0202:求数组中的最小值

现在有这个一个需求,给定一个 int 型数组 {10, 17, 14, 16, 20, 4} 求出数组的最小值。你能用什么方法完成这个需求?笔者这里直接上代码了哈(其实就是打擂台,谁小,谁就站得住):

public class TestVar {public static void main(String[] args) {int[] arr = {10, 17, 14, 16, 20, 4};int min = getMinNumber(arr);System.out.println("数组中的最小值为: " + min);}
​public static int getMinNumber(int[] arr) {int min = arr[0]; // 假设数组第 0 个值为最小值for (int num : arr) {if (min > num) { // 如果最小值比当前的值大,就把最小值赋给 minmin = num;}}return min; // 返回最小值}
}

0x0203:求数组中的最大值

继续,给定一个 int 型数组 {10, 17, 14, 16, 20, 4} 求出数组的最大值:

public class TestVar {public static void main(String[] args) {int[] arr = {10, 17, 14, 16, 20, 4};int min = getMaxNumber(arr);System.out.println("数组中的最大值为: " + min);}
​public static int getMaxNumber(int[] arr) {int max = arr[0]; // 假设数组第 0 个值为最大值for (int num : arr) {if (max < num) { // 如果最大值比当前的值小,就把最大值赋给 maxmax = num;}}return max; // 返回最小值}
}

0x03:数组的应用 — 数组查询问题

0x0301:查询问题 — 查询指定位置的元素

查询值定位置的元素,即根据提供的下标,获取数组中对应元素的值。这个最简单,直接上代码:

public class TestVar {public static void main(String[] args) {int[] arr = {10, 17, 14, 16, 20, 4};System.out.println("arr 中下标为 " + 2 + " 的元素的值是 " + getIndexValue(arr, 2));}
​public static int getIndexValue(int[] arr, int index) {// bug: 若 index < 0 或者 > length 咋办// 根据 index 的值返回 arr 中对应的值return arr[index];}
}

0x0302:查询问题 — 查询单个元素对应索引

有时候我们会有这么一个需求,即想根据一个值,查询这个值在数组中的索引是多少:

public class TestVar {public static void main(String[] args) {int[] arr = {10, 17, 14, 16, 20, 4};int index = getIndex(arr, 16); // 在 arr 中查询元素 16 的下标if (index == -1) {System.out.println("抱歉, arr 数组中查无此数");} else {System.out.println("arr 中元素 16 的下标为: " + index);}}
​/*查询数组指定元素对应的索引@arr : 待查询元素的数组@value: 待查询的元素值@return: 元素对应的索引下标 (int 型),若值为 -1 代表查询失败*/public static int getIndex(int[] arr, int value) {int index = -1;for (int i = 0; i < arr.length; i++) {if (arr[i] == value) { // 如果当前元素的值与待查询元素值相同,则返回元素下标return i;}}return index; // 否则返回 -1,代表未查询到}
}

0x04:数组的应用 — 元素添加问题

在使用数组时,我们经常会想往数组的一个指定位置添加元素。下面是一个示例代码:

import java.util.Scanner;
​
public class TestVar {public static void main(String[] args) {int[] arr = new int[5]; // 创建一个 5 个空间大小的数组
​// 为数组的前 4 个空格赋值arr[0] = 1;arr[1] = 2;arr[2] = 3;arr[3] = 4;
​// 获取用户想要插入的元素,和元素下标Scanner sc = new Scanner(System.in);System.out.print("Enter array elements:");int value = sc.nextInt();System.out.print("Enter array index:");int index = sc.nextInt();
​// 将 value 插入到数组的 index 位置insertValue(arr, index, value);
​// 打印插入后的数组System.out.println("增加元素后的数组为: ");for (int num : arr) {System.out.print(num + " ");}}
​/*往数组的指定位置添加元素@param: arr => 待插入元素的数组@param: index => 待插入元素的数组下标@param: value => 待插入数组的值*/public static void insertValue(int[] arr, int index, int value) {for (int i = arr.length - 1; i > index; i--) {arr[i] = arr[i - 1];}arr[index] = value;}
}

0x05:数组的应用 — 数组删除问题

0x0501:数组删除 — 删除指定位置上的元素

笔者直接上示例代码了,即根据用户传入的下标,删除指定位置上的元素:

import java.util.Scanner;public class TestVar {public static void main(String[] args) {int[] arr = new int[]{1, 2, 3, 4, 5};// 获取用户想要删除的元素下标Scanner sc = new Scanner(System.in);System.out.print("待删除的元素下标:");int index = sc.nextInt();// 打印删除前的数组值System.out.println("删除前的数组内容: ");for (int num : arr) {System.out.print(num + " ");}// 删除指定位置的元素deleteIndex(arr, index);// 打印删除后的数组值System.out.println("\n 删除后的数组内容: ");for (int num : arr) {System.out.print(num + " ");}}/*根据用户传入的下标位置,删除数组中指定位置上的值@param arr => 待删除的数组对象@param index => 待删除的元素位置*/public static void deleteIndex(int[] arr, int index) {for (int i = index; i < arr.length - 1; i++) {arr[i] = arr[i + 1];}arr[arr.length - 1] = 0; // 给末尾值赋 0 代表被删除}
}

0x0502:数组删除 — 删除数组中的指定元素

除了根据下标去删除数组中的内容外,我们还可以根据值进行删除:

import java.util.Scanner;public class TestVar {public static void main(String[] args) {int[] arr = new int[]{1, 2, 3, 4, 5};// 获取用户想要删除的元素下标Scanner sc = new Scanner(System.in);System.out.print("待删除的元素的内容:");int value = sc.nextInt();// 打印删除前的数组值System.out.println("删除前的数组内容: ");for (int num : arr) {System.out.print(num + " ");}// 删除数组中的指定元素deleteValue(arr, value);// 打印删除后的数组值System.out.println("\n 删除后的数组内容: ");for (int num : arr) {System.out.print(num + " ");}}/*根据用户传入的元素的值,从数组中删除指定的元素@param arr => 待删除的数组对象@param value => 待删除的元素的值*/public static void deleteValue(int[] arr, int value) {// 第一步: 从数组中查找到要删除的值的位置int index = -1;for (int i = 0; i < arr.length; i++) {if (arr[i] == value) {index = i;break;}}// 第二步: 判断数组中是否有待删除的值if (index == -1) {System.out.println("抱歉,数组红没有待删除的值 !");return;}// 第三步: 根据获得的位置,从数组中删除对应的值for (int i = index; i < arr.length - 1; i++) {arr[i] = arr[i + 1];}arr[arr.length - 1] = 0; // 给末尾值赋 0 代表被删除}
}

http://www.dtcms.com/a/514620.html

相关文章:

  • 销售型企业网站建设应遵守的原则html诗词赏析网页制作步骤
  • 广州网站建设系统开发合肥网站到首页排名
  • 黄浦建设机械网站深圳注册公司一定要u盾吗
  • 懂的建设网站在线设计房屋布局软件
  • 谈谈网站开发流程长葛网站制作
  • html5网站开发语言的有点智慧团建官网登录网址
  • 如何在百度上做自己的网站做网站要多长时间
  • 中山网站建设网站想学企业管理课程
  • 怎样清理网站后门可以用AI做网站上的图吗
  • 为什么无法再社保网站上做减员外贸做的亚马逊网站是哪个
  • 作网站流程网络品牌公关
  • 设计网站 问题西安到北京高铁几小时
  • 梅州企业网站想创业去哪里找项目
  • 做公司的网站付的钱怎么入账二级域名分发站免费
  • 北京诚通新新建设有限公司网站怎么做存储网站
  • 找公司做网站源代码给客户吗快站科技
  • 凡科网站建设无锡网站制作优化推广公司
  • 三河网站建设-七天网络如何让百度收录我的网站
  • 有自己的域名怎么建设网站网线制作排序
  • 专业做网站建设的公司在线的crm系统软件
  • 正规网站建设空间赣州火车站找服务
  • 徐州网站制作做网站分几个步骤
  • 南海网站推广个人网页设计源代码
  • 微信小程序怎么做问卷调查保定关键词优化平台
  • 个人网站开发可行性报告博客推广那个网站列好
  • 青岛市崂山区建设局网站企业营销型网站推广方法
  • 在线crm系统是啥做seo网站不用域名
  • 财政局门户网站建设方案个人网站要备案吗
  • 网站专门做冻品的推广app接单网
  • 做网站到底要不要营业执照电商加盟网站建设