Java0608-node

2023-05-16

Java0608-node

目录

  • Java0608-node
  • 1 数组
    • 1.1概念
    • 1.2 数组的使用
    • 1.3使用场景
    • 1.4应用
  • 2 二维数组
    • 2.1二维数组的创建

1 数组

1.1概念

数组是指内存中一块连续的空间,数量固定存储类型相同
特点:

  • 长度:指数组中最多可以存储几个数据
  • 数组名:链接到数组第一个值的存储地址,可以据此快速找到数组中的数据
  • 元素:数组中存储的数据
  • 数组的数据类型:数组中所存储的数据的数据类型
  • 下标:索引数组内下标位置的值(从0开始到数组长度-1),若超过数组长度,会引发数组下标越界异常

1.2 数组的使用

/**
* 声明数组
*/
//数据类型[] 数组名
int[] names;//推荐
//数据类型 数组名[]
String strs[];

//申请空间
names = new int[7];//长度从0~6
strs = new String[3];

//边声明,边申请空间
char[] char1 = new char[2];

/**
* 数组的使用
*/
//获取长度(name.length)
int len = char1.length;
System.out.println(len);//2

//获取元素(name[下标])
//系统会给素组分配默认值:int——0、double——0.0、
//boolean——false、String——null(null是引用类型的默认值)
int num1 = names[0];
System.out.println(num1);//0

//存储数据——赋值
//单个赋值
names[0] = 123;
names[2] = 124;
//简便赋值(长度根据具体值量给定)——只能写在一行
int[] array = {1,2,3,4,5};
System.out.println(array.length);//5
System.out.println(array[3]);//4
//可以写在多行
char[] char2;
char2 = new char[]{'1','b'};
//通过键盘输入输入
Scanner input = new Scanner(System.in);
for(int i=0;i<=array.length-1;i++){
	System.out.print("请输入:");
	array[i] = input.nextInt();
}
//增强for foreach
//依次从array内取值,赋值给n
//优点:没有数组下标,不会越界(ArrayIndexOutOfBoundsException)
//局限:为遍历而生,不能修改数组内值
for(int n:array){
	System.out.print(n+" ");
}

//int[] a
//int[] b都是引用类型的变量
a = b;//将b里存的数组的地址,赋值给a,对a进行修改时,会影响b查找时的值

1.3使用场景

多个相同类型的数组的存储

1.4应用

  1. 查找
    12、23、34、45、56——34
    二分查找
    Arrays.binarySearch(数组名,需要查找的值/变量);
    找不到时,返回的值不固定
//二分查找实现
import java.util.Scanner;
public class Test04 {
	public static void main(String[] args) {
	int[] array = new int[100];
	int left = 0;//数组最左边
	int len = array.length;//数组长度
	int right = len-1;//数组最右边
	int mid = (left+right)/2;//数组中间
	Scanner input = new Scanner(System.in);
	System.out.print("输入您要找的值:");
	int num = input.nextInt();
	
	for(int i=0;i<len;i++) {
		array[i]=i*i-34;//y=x*x-34的值输入数组
	}
	for(int n:array) {
		System.out.print(n+" ");//数组的值输出
	}
	
	while(left<=right) {
		if(array[mid]==num) {
			System.out.println("已找到"+num);
			break;
		}else if(array[mid]>num){
			right = mid-1;
			mid = (left+right)/2;
		}else {
			left = mid+1;
			mid = (left+right)/2;
		}
	}
	
	if(left>right) {
		System.out.println("未找到"+num);
	}
  }
}
  1. 求最值

  2. 冒泡排序(升序)
    相邻两数比较,小的在前,大的在后,不符合时,交换,直到不需要交换为止

//冒泡排序实现
import java.util.Scanner;
public class Test01 {
	public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	System.out.println("请输入10个数:");
	int[] nums = new int[10];
	int len = nums.length;//数组长度
	int frequency = len-1;//比较趟数
	
	for (int i = 0; i < len; i++) {//向数组输入数据
		nums[i] = input.nextInt();
	}
	
	//升序
	for(int i=0;i<frequency;i++) {//范围:[0,len-2]及比较1~len-1趟
		boolean flag = false;//true:交换过、false:没有交换过
		for(int j=0;j<frequency-i;j++) {//范围:[0,(len-2)-i]及比较1~len-1-i次
			if(nums[j]>nums[j+1]) {
				int temp = nums[j];
				nums[j] = nums[j+1];
				nums[j+1] = temp;
				flag = true;
			}
		}
		System.out.println("执行趟数:"+(i+1));
		if(!flag) {//若某一趟没有交换过数据,就是有序的,退出
			break;
		}
	}
	
	for (int i : nums) {//输出排序结果
		System.out.print(i+" ");
	}
	
	System.out.println("--------------------------");
	
	//降序
	for(int i=0;i<frequency;i++) {
		boolean flag = false;//true:交换过数据、false:为交换过
		for(int j=0;j<frequency-i;j++) {
			if(nums[j]<nums[j+1]) {
				int count = nums[j];
				nums[j] = nums[j+1];
				nums[j+1] = count;
				flag = true;
			}
		}
		System.out.println("执行趟数:"+(i+1));
		if(!flag) {
			break;
		}
	}
	
	for (int i : nums) {//输出排序结果
		System.out.print(i+" ");
	}
  }
}
  1. 插入

  2. 选择排序

  3. 插入排序

  4. java提供的现成方法
    Arrays.sort(nums);//升序

2 二维数组

2.1二维数组的创建

//方法一:为每一维分配空间
int[][] num1 = new int[5][5];
for(int i=0;i<nums.length;i++) {
 	for(int j=0;j<nums[i].length;j++) {
 	nums[i][j] = input.nextInt();
	}
}
 
//方法二:直接赋值
//先定义每一维的数组,然后创建二位数组
int[] nums1 = new int[5];
int[] nums2 = new int[5];
int[] nums3 = {0,0,1,1,1};
int[] nums4 = {4,5,6,7,8};
int[] nums5 = {4,5,6,7,8};
int[][] num2 = {nums1,nums2,nums3,nums4};

//NullPointerExecption空指针异常
int[][] num = new int[4][];	
 
//Arrays的常用方法
int[] nums6 = {0,1,2};
int[] nums7 = {3,4,5};
int[] nums8 = {6,7,8};
int[][] num3 = {nums6,nums7,nums8};

//toString()
System.out.println(Arrays.toString(nums6));//[0, 1, 2]
System.out.println(num3);//[[I@15db9742
System.out.println(Arrays.toString(num3));//[[I@6d06d69c, [I@7852e922, [I@4e25154f]

//deepToString()
System.out.println(Arrays.deepToString(nums));//[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java0608-node 的相关文章

  • 智慧PG集成开发平台pgting-cli发布了

    介绍 两周前我们发布了智能页面搭建平台 智慧PG pgting 深受用户青睐 很多用户尝试了在线开发组件 为了方便用户定制开发组件和组件共享 智慧PG设计之初就考虑了组件定制开发问题 为此 我们设计和研发了智慧PG集成工作台pgting c
  • 解决:Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\辰之星\AppData\Roaming\npm\node_modules\n

    解决 Error ERR REQUIRE ESM require of ES Module C Users 辰之星 AppData Roaming npm node modules nrm node modules open index j
  • 如何在 MacOS 上安装 Node.js

    Node js 是一个强大的 JavaScript 运行时环境 允许您在服务器端执行 JavaScript 它广泛用于开发可扩展的 Web 应用程序 命令行工具等 在本文中 我们将介绍在 macOS 系统上安装 Node js 的过程 先决
  • node调用谷歌翻译Api,实现自动国际化

    原因 项目国际化过程繁琐 每次都需要人工去google翻译 导致工作效率不高 需求 1 减少人工的重复劳动 提高工作效率 2 使用脚本调用谷歌翻译接口自动化翻译 3 free 作为程序员肯定接受不了付费服务 找方法解决限制 前期准备 1 谷
  • nodejs生成token

    首先安装jsonwebtoken 命令 npm i jsonwebtoken save 代码如下所示 const fs require fs 文件模块 const path require path 路径模块 const jwt requi
  • Node.js 下载安装环境配置 - 图文版

    Node js 是一个开源 跨平台的 JavaScript 运行时环境 一 介绍 1 官方文档 1 中文文档 Node js 中文网 2 英文文档 Node js 二 下载 1 中文 2 英文 编辑三 安装 1 新建一个文件夹作为安装路径
  • Node之在多个子进程中运行Node.js应用程序

    引 一个Node js应用程序只能使用在一个线程中 最近 为了充分发挥多核CPU的优势 Node js中提供了一个cluster模块 允许在多个子进程中运行不同的Node js应用程序 使用fork方法创建worker对象 在cluster
  • Nodejs的学习Ⅵ(express、ejs模板、关于get与post请求、中间件、nodemon与pm2、app.js文件的说明)

    一 express的简单介绍与安装 ndoe js 一个基于javsscript的服务器环境 它的出现使得javascript有能力去实现服务器操作 而基于node js的Express则把原先的许多操作变的简单灵活 一系列强大特性帮助你创
  • Node =》 nodemon

    在编写调试Node js的时候 如果修改了项目的代码 则需要频繁的手动close掉 然后再重新启动 非常频繁 现在可通过nodemon这个工具 能够监听项目文件的变动 当代码被修改后 nodemon会帮我们重新启动项目 极大方便了开发和调试
  • Node.js 从零开发 web server博客项目[koa2重构博客项目]

    web server博客项目 Node js 从零开发 web server博客项目 项目介绍 Node js 从零开发 web server博客项目 接口 Node js 从零开发 web server博客项目 数据存储 Node js
  • nodejs 控制台美化 console-color-mr

    console color mr插件可以让node控制台输出带有颜色 是一个不错的插件 通过颜色可以更直观的分析程序bug 一 使用 npm install D console color mr 方法一 import console col
  • npm、yarn、pnpm如何清除缓存?

    前端工程化创建项目会经常使用各种安装包管理工具 安装各种前端依赖包 例如 npm yarn pnpm等 时间一长 各种安装包管理工具的在安装依赖时 留下的缓存文件就会变得很大 以至于影响系统的运行 因此必要时清除缓存就是一个不错的选择 本文
  • Express初学之入门

    1 Express简介 基于Node的极简MVC框架 提供灵活的路由功能 提供强大的中间件机制 内核极小 扩展性很好 使用广泛 2 路由机制 Express概念 定义了Api的地址 请求 响应方式 方法 天然支持HTTP Method 中的
  • 解决多个Tabs频繁切换造成数据错乱问题的方案

    一 利用axios的cancelToken import post from util ajax import axios from axios const CancelToken axios CancelToken post let ca
  • 小白入坑-利用express构建一个简单的Node项目

    做了部分前端的东西 当然不能局限眼前的成果 梦想能成为全栈的大佬 然后左手一个小姐姐 右手一个富萝莉 走远了 奈于java对前端来说比较难 耗费的学习时间也比较长 所以先从node下手过一下瘾儿 首先 win r打开windows的运行框
  • 发布npm包-简要记录

    1注册账号 注册npm账号 需要邮箱 激活npm账号 npm账号注册成功以后会收到邮件 邮件中有个链接 点进去进行激活 2创建项目 npm init 创建项目 name 命名规则 不能包含大写字母 空格及下滑线 version 创建时候默认
  • 了解 node周边生态

    前言 Node js 周边的生态非常强大 NPM Node包管理 上有超过60万个模块 日下超过载量3亿次 但对新人和其它语言背景的开发者来说 了解node周边生态不是一件容易的事 在入门之前需要弄懂不少复杂的概念 废话不多说 来看看本次分
  • node快速创建一个工程项目

    1 安装express npm install g express 2 新建一个工程 指定使用ejs模板引擎 express e 文件名 3 安装需要的模块 cd 文件名 npm install 4 启动 SET DEBUG 文件名 npm
  • Nodejs版本管理工具mvn部署

    部署mvn curl o https raw githubusercontent com creationix nvm v0 34 0 install sh bash 添加环境变量 vim zshrc export NVM DIR HOME
  • Node.js 工作线程与子进程:应该使用哪一个

    Node js 工作线程与子进程 应该使用哪一个 并行处理在计算密集型应用程序中起着至关重要的作用 例如 考虑一个确定给定数字是否为素数的应用程序 如果我们熟悉素数 我们就会知道必须从 1 遍历到该数的平方根才能确定它是否是素数 而这通常非

随机推荐

  • 解决conda install时Solving environment: failed with initial frozen solve. Retrying with flexible solve.

    1 问题描述 在conda install 软件包时出现Solving environment failed with initial frozen solve Retrying with flexible solve 而导致无法安装软件
  • 关于如何利用obspy求出穿透点的经纬度信息

    1 介绍 在Taup中可以利用taup pierce求出不连续界面穿透点的经纬度信息 xff0c 在obspy中可以利用TauPyModel中的get pierce points geo获取穿透点的经纬度信息 xff0c 在此记录一下 注意
  • Python爬虫小白教程(五)—— 多线程爬虫

    文章目录 并发和并行同步和异步单线程爬虫学习Python多线程简单多线程爬虫使用Queue的多线程爬虫爬虫系列 在爬取许多网页或者爬取图片的时候 xff0c 我们的爬虫会遇到一个严重的问题 xff0c 爬取速度太慢 解决速度太慢的方法主要有
  • 工作生活篇之第六天

    工作生活篇之第六天 最近由于疫情的影响 xff0c 国家电网也发布了最新消息 xff0c 电费在欠额的情况可继续使用 本来我是以为只有电费欠费可以继续使用 xff0c 没想到燃气费也是 xff0c 最近燃气费不多了 xff0c 然后还得去银
  • 工作生活篇之第九篇

    工作生活篇之第九篇 一直觉得这世上告别仪式挺多的 xff0c 比如喝酒 旅行 xff0c 或干脆痛哭一场 xff0c 可是后来才知道 xff0c 人生中大部分告别是悄无声息的 xff0c 原来某天的相见 xff0c 竟已是最后一面 xff0
  • Java自定义输出JSON格式

    如何自定义输出数据Json格式解决办法 平时默认的json输出格式为 xff1a span class token punctuation span span class token string 34 id 34 span span cl
  • SpringCloud常见问题 -- 启动多个服务

  • Spring框架 -- 项目启动及配置(一)

    Spring 容器启动大致流程 Spring 基础 IDEA项目Maven搭建结构 idea src src main java 自建 src main resource 自建 src main resource dev 自建 src ma
  • 【ZYNQ】裸机 PS + PL 双网口实现之 lwip 库文件修改

    因项目需要 xff0c 为实现 Zynq 裸机双网口通信功能 xff0c 其中 ENET0 连接 PS 端网口 xff0c ENET1 通过 EMIO 扩展连接 PL 端网口 xff0c 原 Lwip 库无板载 PHY 芯片支持及 EMIO
  • openstack删除nova service-list中的computer服务列表流程

    文章目录 说明 删除流程 nova服务查看 修改主机名 关闭准备删除的nova服务 删除nova服务 删除agent服务 创建虚拟机测试 说明 如下图 同一个计算节点主机名有2个 造成这种原因就是单纯的改主机名了 因为正常来说计算节点nov
  • spring— Bean标签scope配置和生命周期配置

    scope配置 singleton 默认值 xff0c 单例的prototype 多例的request WEB 项目中 xff0c Spring 创建一个 Bean的对象 xff0c 将对象存入到 request 域中session WEB
  • 对项目的梳理、流程和总结

    过程 我在制作 中国汽车技术研究中心 的一个演讲PPT前 xff0c 也已经有第一版的基础了 xff0c 不过 xff0c 第一版的PPT客户并不满意 xff0c 因为这个风格不是客户想要的 xff0c 所以客户对第一版的PPT并不是很满意
  • Linux中添加用户设置权限并实现远程登录

    1 username 为你自己命名的用户名 useradd username 2 设置密码 passwd username 3 用户文件夹在 home 下 4 查看更改登录管理账号 sudo vi etc ssh sshd config 5
  • rosdep init报错解决方法

    rosdep init报错解决方法 很多小伙伴在安装ROS的过程中都不可避免的要执行rosdep init和rosdep update这两行命令行 xff0c 这也是在安装ROS的过程中最让人头疼的两步 xff0c 一般都没法一次成功 xf
  • win10登录出现“其他用户”,一分钟后自动重启的解决方案和原因分析

    今天公司的同事的电脑莫名其妙重启开机后 xff0c 就一直是其他用户 身为技术部的人 xff0c 程序员就该修电脑是常识 xff08 大雾 xff09 百度各种解决方案的汇总 输入你的微软账号用户名 xff08 邮箱 xff09 和微软账号
  • Nginx启动失败control process exited, code=exited status=1

    出现现象 nginx启动失败 xff0c 估计是端口被某个进程占用了 通过lsof i 80 查看 xff0c 发现被httpd服务占用 可以通过杀掉进程或者更改nginx 端口解决 xff0c 通cat etc nginx nginx c
  • Python爬虫入门实例一之淘宝商品页面的爬取

    文章目录 1 爬取原界面2 代码解析3 完整代码引用源自 1 爬取原界面 今天给大家介绍第一个爬虫小例子 xff0c 使用requests库爬取淘宝商品信息 xff0c 首先想要爬取的内容如下图 2 代码解析 使用交互环境给大家带来代码解析
  • Linux(Ubuntu)入门——1.Ubuntu虚拟机安装

    inux Ubuntu 入门 1 Ubuntu虚拟机安装 目录 Ubuntu虚拟机安装 Ubuntu虚拟机安装 1 在VMware界面选择创建新的虚拟机 2 选择自定义 xff08 高级 xff09 xff0c 然后点击下一步 3 硬件兼容
  • Linux(Ubuntu)入门——4.VMwaretools安装(解决虚拟机窗口过小)

    Linux Ubuntu 入门 4 VMwaretools安装 xff08 解决虚拟机窗口过小 xff09 1 虚拟机选项卡里选择安装VMwareTools 2 桌面会看到VMware Tools的图标 xff0c 双击打开 3 将以 ta
  • Java0608-node

    Java0608 node 目录 Java0608 node1 数组1 1概念1 2 数组的使用1 3使用场景1 4应用 2 二维数组2 1二维数组的创建 1 数组 1 1概念 数组是指内存中一块连续的空间 xff0c 数量固定且存储类型相