Java SE学习笔记(五)——数组

2023-11-11

1、包装类(Wrapper Class),针对原生数据类型的包装。所有的包装类(8个)都位于java.lang包下,对应8个包装类分别是:Byte、Short、Integer、Long、Float、Double、Character、Boolean。他们的使用方式都一样的,可以实现原生数据类型与包装类型的双向转换。

2、数组类(Array),相同类型的数据集合叫做数组。

A、定义方式:type [] 变量名=new type[数组长度];eg:int [] a=new int[4] ;或者 int a[]=new int[4] //注意数组索引从0开始;

B、赋值方式,直接赋值,

       1)int [] a=new int[4] ; a[0]=1; a[1]=2;

       2)int [] a={1,2,3,4};

       3)int[] a=new int[]{1,2,3,4};

C、java中每个数组都有一个length长度属性,length属于public、final、int类型的,数组长度一旦确定不能改变;同时数组定义以后会开辟内存空间,给每个对象一个初始化值,因此不赋值也可以用,会有一个默认初始值;

D、数组是一个对象引用,如果改变数组内容,所有数组都会改变;同时即使定义的完全一样的两个数组,也是两个对象,用equals会返回false。

F、数组里面存储内容为对象时,存储的是对象的地址(存储的对象的引用),不会存储对象本身;

class ArrayTest 
{
	public static void main(String[] args) 
	{
		char[] ch={'A','C'};
		//数组为一个引用,传入数组时会改变引用对象的内容;传入char单个元素时不会
        swap(ch,ch[1]);
		for(int i=0;i<ch.length;i++){
			System.out.println(ch[i]);//输出结果为B、C
		}	
	}
	public static void swap(char[] ch,char c){
		ch[0]='B';
		c='D';
	}
}

E、多维数据组,int[][] a=new int[2][3]; 定义不规则数组:int [][]=new int[3][]; int [][]=new int[][3]//第二种方式编译通不过。

3、数组的应用

A、利用JDK拷贝数组,eg:System.arraycopy(array1,0,array2,0,4) //System.arraycopy(Object src, int srcPos,Object dest, int destPos,int length)参数分别是:原始数组,拷贝起始索引,目标数组,目标数组起始索引,拷贝长度。

B、冒泡排序

class SortTest 
{   //冒泡排序,交换排序
	public static void main(String[] args) 
	{
		int[] arr=new int[]{5,4,7,9,3};
		
		for(int i=0;i<arr.length;i++){
			sortArray(arr);
		}
		for(int j=0;j<arr.length;j++){
			System.out.println(arr[j ]);
		}
		System.out.println("Hello World!");
	}

	public static void sortArray(int [] arr){
		for(int i=0;i<arr.length-1;i++){
			if(arr[i]>arr[i+1]){
				int a=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=a;
			}
		}
	}
}

C、二分查找(Binary Search),对于有序数组采用二分/折半查找

class SearchTest
{	
	public static void main(String [] args){
	
		int[] arr={1,4,5,6,7,8,11,14,15,22,23,24};
		for (int i=0;i<arr.length ;i++ )
		{
			System.out.println(searchArray(arr,arr[i]));
		}

	}
	public static int searchArray(int[] arr,int value){
		int low=0;
		int high=arr.length-1;
		
		while(low<=high){
			int middle=(low+high)/2;
			if(arr[middle]==value){
				return middle;
			}
			if(arr[middle]>value){
				high=middle-1;
			}
			if(arr[middle]<value){
				low=middle+1;
			}
		}
		return -1;
	}
}

D、随机生成50个整数,范围[10,50],统计每个数字出现似乎,最后按照升序打印数据及出现个数;同时打印数据出现最多的数字和个数。

import java.util.Random;
class  RandomTest
{
	public static void main(String[] args) 
	{
		int [] arr=new int[100];
		Random r=new Random();
		for (int i=0;i<arr.length ;i++ )
		{
			arr[i]=r.nextInt(41);
			System.out.println(arr[i]);
		}	
		int[] count=new int[41];
		for(int i=0;i<arr.length;i++)
		{
			count[arr[i]]++;
			
		}
		int maxCount=0,maxNumber=0;
		for(int i=0;i<count.length;i++){
			if(count[i]!=0){
				System.out.print("数据"+(i+10)+"出现"+count[i]+"次\n");
			}
			if(maxCount<count[i]){
				maxCount=count[i];
				maxNumber=i+10;
			}
		}
		System.out.println("出现最多的数据为:"+maxNumber+"一共"+maxCount+"次");
	}
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java SE学习笔记(五)——数组 的相关文章

  • List接口及其实现类

    List接口 鉴于Java中数组用来存储数据的局限性 我们通常使用List替代数组 List集合类中元素有序 且可重复 集合中的每个元素都有其对应的顺序索引 List容器中的元素都对应一个整数型的序号记载其在容器中的位置 可以根据 序号存取
  • Java 基本类型和包装类型侧重学习笔记(基础)

    包装类可以是null 而基本类型不可以
  • Android动态权限申请框架

    XmPermissions 项目介绍 Android动态权限申请框架 Github地址 https github com lhm0603 XmPermissionsProject 使用说明 XmPermissions 支持 Android
  • Java的流程控制结构以及程序跳转关键字详解

    本文详细介绍了Java中的流程控制结构 以及跳转关键字break continue return的使用 文章目录 1 流程控制结构分类 2 顺序结构 3 选择结构 3 1 if语句 3 1 1 if 3 1 2 if else 3 1 3
  • 【Java】抽象类和接口

    并没有那么多天赋异禀 优秀的人总是努力翻山越岭 目录 1 抽象类 1 1 抽象类的概念 1 2 抽象类的语法 1 3 抽象类的特性 1 4 抽象类的作用 2 接口 2 1 接口的概念 2 2 接口的语法规则 2 3 接口的使用 2 4 接口
  • 文件上传优化

    文件上传优化 文件的名称需要优化 服务端 保存的文件名称如果固定 那么最终会导致服务器硬盘 只会保留一个文件 对上传的文件名称优化 System currentTimeMillis new Random nextInt 1000000 jp
  • 网络编程学习笔记(基础)

    序言 这个博客有点 胡吃海喝 的味道 所写虚于所实哈 笔记记的是一个B站up主的 目录 TCP 双向的沟通 双向奔赴 gt 稳定 UDP 单向的沟通 单相思 gt 发送 网络编程的作用 网络编程的重点在于 联机 单机游戏和联机游戏的区分 网
  • 【Java 多线程 3】线程池2

    一 线程池简介 线程池是一种多线程处理形式 处理过程中将任务添加到队列 然后在创建线程后自动启动这些任务 线程池线程都是后台线程 每个线程都使用默认的堆栈大小 以默认的优先级运行 并处于多线程单元中 如果某个线程在托管代码中空闲 如正在等待
  • Java 初级其它类学习笔记(基础)

    外部类和内部类 外部类的封装等级只有以下两种形式 1 public class 外部类名 有public修饰符的外部类属于对外公开的 文件类 即 java文件名与此类名保持一致 2 class 外部类名 缺省 修饰的外部类属于普通类 而非
  • 多线程面试题总结(高级篇,2021-02-19)

    一 ThreadLocal 是什么 有哪些使用场景 ThreadLocal 是一个本地线程副本变量工具类 在每个线程中都创建了一个 ThreadLocalMap 对象 简单说 ThreadLocal 就是一种以空间换时间的做法 每个线程可以
  • 面试必懂之数组排序法总结

    1 寄语 大家在理解的过程中 可以先理解排序的原理 然后按照自己的理解用代码的方式去实现 在写代码的过程中 必要时可以自己去据一个简单一点的数组 在脑海中想想排序的过程 也可以一步一步打印 看结果 这篇文章是我在网上找的 有原理图 但是原文
  • Idea快捷键大全(Windows)

    一 知道类名查找类 1 Ctrl Shift Alt N 2 双击Shift 二 查找类中所有方法 Ctrl F12 三 快速查找类或方法在整个项目中的位置 按住Ctrl键再点击类或方法会出现所有用到过的文件对象
  • websocket即时通讯

    目录 一 websocket简介 二 背景 三 优点 1 控制开销 2 实时性更强 3 保持连接状态 4 更好的二进制支持 5 支持扩展和更好的实现压缩效果 四 原理 1 客户端 服务器建立TCP连接 三次握手 2 TCP连接成功后 客户端
  • java基础知识点

    作者简介 哪吒 CSDN2022博客之星Top1 CSDN2021博客之星Top2 多届新星计划导师 博客专家 专注Java硬核干货分享 立志做到Java赛道全网Top N 本文收录于 Java基础教程系列 目前已经700 订阅 CSDN最
  • java基础之内存机制详解

    今天有看到一篇好的关于java内存机制的文章 果断转载过来 哈哈哈哈哈哈 堆区 1 存储的全部是对象 每个对象都包含一个与之对应的class的信息 class的目的是得到操作指令 2 jvm只有一个堆区 heap 被所有线程共享 堆中不存放
  • Java 高级语法学习笔记(基础)

    目录 反射机制 Class 类 类初始化 类加载 类的生命周期 七大阶段 1 加载 接入 class文件 2 验证 连接 linking 的第一阶段 为了安全 3 准备 分配内存及初步初始化 4 解析 字符翻译成引用阶段 5 初始化 代码正
  • 比较器

    Comparator比较器 Collcetion工具集中的sort public static
  • Lambda表达式使用详细讲解

    目录 1 新思想 1 1函数式编程思想 1 2 函数式接口 2 通往lambda之路 2 1 什么是lambda表示式 2 2 lambda表示式有哪些特点 2 3 lambda表示式使用场景 2 4 lambda表示式语法 2 5 Lam
  • ConcurrentHashMap源码解读

    曾经研究过jkd1 5新特性 其中ConcurrentHashMap就是其中之一 其特点 效率比Hashtable高 并发性比hashmap好 结合了两者的特点 集合是编程中最常用的数据结构 而谈到并发 几乎总是离不开集合这类高级数据结构的
  • 【JAVA日志框架】JUL,JDK原生日志框架详解。

    前言 Java日志体系混乱 Java日志框架系列 清晰简洁整理好整个Java的日志框架体系 第一篇 JDK原生日志框架 JUL 目录 1 概述 2 日志级别 3 配置 4 继承关系 1 概述 日志框架的核心问题 日志是用来记录应用的一些运行

随机推荐

  • 最全IO流解析——IO流的骚操作

    Java中是通过流的方式对数据进行操作 用于操作流的类都在IO包中 IO流用来处理设备之间的数据传输 IO流按照流向分为输入流和输出流 按照操作的数据分为字节流和字符流 字节流可以操作任何数据 因为在计算机中任何数据都是以字节的形式存储的
  • Centos7的iso everything与DVD以及Live的区别

    DVD ISO 可以用安装程序安装的所有安装包 推荐镜像 Netinstall iso 从网络安装或者救援系统 Everything iso 包含centos7的一套完整的软件包 可以用来安装系统或者本地镜像 GnomeLive iso G
  • Mac下github的基本使用(有详细过程)

    一 github准备 1 注册github账号 https github com 按照提示进行注册 2 查看git版本 由于macOS默认安装了git 在终端输入 git v 3 设置username和email username随便输入一
  • 如何防止uniswap和pancakeswap夹子机器人

    被机器人夹是通俗说法 实际就是 front running 抢先提前交易 具体就是机器人在链上嗅探到你有买入行为的时候 他立刻买 gas给的比你高 快你一步确认 这样你成交价就高了 因为交易所有滑点 所以你依旧会以高一点的价格成交并且再将价
  • 区块链简单实现之p2p网络多节点同步

    区块链简单实现之p2p网络多节点同步 将区块保存为json文件 节点 不确定性 区块里保存节点信息 并未向所有节点广播 简单模拟 广播的代码 实现效果 完整的代码 承接上文 区块链的简单实现 我们已经实现了一个简单的区块链数据结构 现状 区
  • wasm + ffmpeg实现前端截取视频帧功能

    有没有那么一种可能 在前端页面处理音视频 例如用户选择一个视频 然后支持他设置视频的任意一帧作为封面 就不用把整一个视频上传到后端处理了 经过笔者的一番摸索 基本实现了这个功能 一个完整的demo ffmpeg wasm截取视频帧功能 支持
  • paddle-pytorch API对应表

    PyTorch API名称 对应Paddle API torch set default dtype paddle set default dtype torch get default dtype paddle get default d
  • linux下mysql-connector-c++连接远程服务器失败

    最近在将windows项目移植到linux下 碰到诸多问题 先谈mysql connector c 连接远程服务器失败问题 在windows下 sql Driver driver sql mysql get driver instance
  • 因果推理相关的图神经网络研究

    本文介绍两篇因果推理相关的图神经网络研究工作 一 OOD推荐系统下的因果表征学习 本文介绍了什么是推荐系统中的Out of Distribution OOD 问题 并从因果的角度提出了一种解决OOD问题的表示学习方式 文章链接 https
  • 关于xinput1_3.dll丢失的详细解决方法

    xinput1 3 dll是电脑文件中的dll文件 动态链接库文件 如果计算机中丢失了某个dll文件 可能会导致某些软件和游戏等程序无法正常启动运行 并且导致电脑系统弹窗报错 在我们打开软件或者游戏的时候 电脑提示xinput1 3 dll
  • Windows10下安装Linux子系统

    Windows10下安装Linux子系统 版本说明 版本 作者 日期 备注 0 1 ZY 2019 7 9 初稿 目录 文章目录 Windows10下安装Linux子系统 版本说明 目录 一 初衷 二 资料收集 三 官方安装说明 1 准备
  • 5.0结构型模式—概述

    结构型模式描述如何将类或对象按某种布局组成更大的结构 它分为类结构型模式和对象结构型模式 前者采用继承机制来组织接口和类 后者釆用组合或聚合来组合对象 由于组合关系或聚合关系比继承关系耦合度低 满足 合成复用原则 所以对象结构型模式比类结构
  • 国庆假期将至,拓世AI智能规划行程,让您轻松游遍全球热门景点!

    卡夫卡曾说 人不是活几年 几月 几天 几小时 而只活几个瞬间 亲赴一场与美景的邂逅 便是去找寻人生里的瞬间之美 转眼已是九月 正是人间好时节 挥别工作和生活的烦闷 奔向辽阔的天地中 即将到来的国庆长假 你需要来一场说走就走的旅行 将所有烦恼
  • 动态数据源配置druid+mybatis

    本方案不限数据库数量完全动态配置 支持不同的数据库部署在不同的服务器上 mybatis plus没测试 下个版本用oracle配的时候尝试plus 一 这次我们使用Mysql 本地现在有两个个数据库用于测试 如图 二 下一步我们看一下Dru
  • LintCode入门题目

    37 反转一个3位整数 反转一个只有3位数的整数 样例 样例 1 输入 number 123 输出 321 样例 2 输入 number 900 输出 9 注意事项 你可以假设输入一定是一个只有三位数的整数 这个整数大于等于100 小于10
  • 表空间的操作

    1 创建表空间 create tablespace tablespace name datafile filepath size filesize autoextend on next autosize maxsize filemaxsiz
  • rule34服务器不稳定,rule34网站

    rule34网站 内容精选 换一换 网站后台数据录入完成后 您需要为您的网站设置便于客户浏览和操作的前台显示界面 本章节主要通过已安装的网站模板指导您完成PC版 手机版网页的制作 以及网站数据的备份 已完成网站后台的设置 并且成功绑定域名
  • 用PyCharm打开已有代码

    一 代码的打开 1 在当前环境 打开新的项目 2 点open 打开文件存放的位置 3 trust Project 4 this window or new window 一般选this window 5 解决代码中的问题 1 一定要解决 2
  • python3 scrapy爬取微信公众号及历史信息V1.0

    环境 python3 scrapy 目的 写这篇文章主要是做一下纪念 毕竟是搞了快两天的东西了 今天加大了量 使用scrapy爬取100多个微信公众号 然后出现IP被封的情况下 当然了 这种情况并不是没有办法解决 只需要在scrapy中进行
  • Java SE学习笔记(五)——数组

    1 包装类 Wrapper Class 针对原生数据类型的包装 所有的包装类 8个 都位于java lang包下 对应8个包装类分别是 Byte Short Integer Long Float Double Character Boole