我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java数组基础详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java数组基础详解

数组

博客园好像炸了,在维护中。

一. 数组概述

  1. 相同类型数据的有序集合
  2. 数组描述的是相同类型的若干个数据。按照一定的先后次序排列组合而成
  3. 每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们
  4. 数组本身就是对象,数组对象本身是存在堆中的
  5. 一旦创建,大小不可改变,长度确定

二. 数组声明和创建

1.首先必须声明数组变量。才能在程序中使用数组


int[] nums;//主要用这样的方式
  int nums[];//这样也行,不建议
nums = new int[10];//创建一个储存10个数据的数组
  int[] nums = new int[10];//也可以这样写,把声明和创建放一起

2.数组的下标,或者说数组的索引是从[0] 开始的

    
    int[] nums = new int[10];
    nums[0]=1;
    nums[1]=2;
    nums[2]=3;
    nums[3]=4;
    nums[4]=5;
    nums[5]=6;
    nums[6]=7;
    nums[7]=8;
    nums[8]=9;
    nums[9]=10;
  • 当一个位置没有数据时,会得到类型的默认值,如 int 会得到 0,String 会得到 null 。

3.可以用 arrays.length 获取数组长度。数组的长度是确定的,确定之后不可变的。切记不要下标越界


int[] nums = new int[10];
nums[0]=1;
nums[1]=2;
nums[2]=3;
nums[3]=4;
nums[4]=5;
nums[5]=6;
nums[6]=7;
nums[7]=8;
nums[8]=9;
nums[9]=10;
int sum = 0;//求和
for(int i = 0; i < nums.length; i++){
    sum = sum + nums[i];
    System.out.println(sum);
}

三. 内存分析

1.JAVA内存有:堆,栈,方法区····

  • 堆:存放new的对象和数组。可以被所有的线程共享,不会存放别的对象引用
  • 栈:存放基本变量类型(包括这个类型的具体数值)。引用对象的变量(会存放这个引用在堆里的具体地址)

  • 方法区:可以被所有的线程共享。包含了所有的class和static变量
  • ·····还有其他,后面学到再提

2.静态初始化:创建+赋值


//如int个数组
int[] a = {1,2,3,4,5,6,7,8,9,10};
System.out.println(a[0]);
//也可以是引用类型
    Man[] mans =  {new Man(1,1),new Man(2,2)}

3.动态初始化:前面其实就是动态初始化,是分开写的。没有赋值的,为该类型的默认初始化值


int[] a = new int[10];
a[0]=1;
a[1]=2;

这里a[3] , a[4]····没有赋值,那么就是int的默认初始化值 0

4.下标区间 [ 0 , length-1 ] 。下标越界报错:java.lang.ArrayIndexOutOfBoundsException

综合举例

运行结果

四. 数组的使用

1.For-Each 循环 (省掉了下标的使用)


int[] nums = {1,2,3,4,5,6,7,8,9};
//常规for循环打印全部元素
for(int i = 0; i< nums.length; i++){
    System.out.println(nums[i]);
}
//利用for-each循环
for(int num : nums){
     System.out.println(num);
}

2.常规 for 循环

3.数组作方法入参

4.数组作返回值。比如反转数组里的元素

二维数组和冒泡排序

1.二维数组


//遍历二维数组
public class Array001 {
	public static void main(String[] args) {
        //创建二维数组
		int[][] a = {{1,2},{5,7},{9,6},{9,5,4},{6,5,4,9,1,2,3}};
        //遍历二维数组的外部数组
		for(int i=0; i<a.length; i++) {
            //j作为二维数组内部数组的下标,长度是 a[i].length
			for(int j=0; j<a[i].length;j++) {
				System.out.print(a[i][j]+" ");
			}
			System.out.println();
		}
}
}

2. 冒泡排序


//冒泡排序
import java.util.Arrays;
public class Test001 {
	public static void main(String[] args) {
        //创建一个数组
		int[] a = {12,45,2,6,48,23,9};
		method(a);
		System.out.println(Arrays.toString(a));
}
    
        //第二轮2,6,12,23,9,45,48
        //第三轮···
		//可以发现比较的轮数为数组长度a.length-1
	private static void method(int[] a) {
		//定义变量i,表示比较的轮数
		for(int i =1; i<a.length; i++) {
			for(int j = 0; j<a.length-1; j++) {
				//比较相邻元素的大小,并交换值
			if( a[j]>a[j+1] ) {
				int t = a[j];
				a[j] = a[j+1];
				a[j+1] = t;
				}
			}
		}
	}
}

总结

本篇文章的内容就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的其他内容!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java数组基础详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【Java 基础篇】Java Map 详解

文章目录 导言一、Map 概述二、HashMap三、TreeMap四、LinkedHashMap总结 导言 在Java的集合框架中,Map接口用于存储键值对,提供了一种基于键进行查找和操作的数据结构。Map接口的实现类提供了
2023-08-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录