【java】一维数组
数组概念:
同一种类型数据的集合,实际数组也是一个容器。
定义方式:
//定义方法1:元素类型 [] 数组名 =new 元素类型 [数组元素个数或数组长度]
如 int [] arry =new int [3]
//定义方法2:数组静态初始化方式,一般不指定数组的长度,但是系统为自动决定。元素的值确定时,一般使用这种方式初始化
如 String[] computers = {"Dell", "Lenovo", "Apple", "Acer"};或 String[] computers = new String[] {"Dell", "Lenovo", "Apple", "Acer"}
数组存储方式:
栈内存:用于存储局部变量,当数据使用完毕,所占空间会自动释放,如图所示:
堆内存:存储数组和对象,通过new建立的实例都存放在堆内存中。
特点:1)每个数组都有内存地址。2)数组中元素默认都有初始化值。int类型默认为0,double类型默认为0.0,bool类型默认为false 3)实体不在使用,会把实例设置为null,系统会不定期呗垃圾回收期回收。
如图所示,arry和arrx都为数组的引用,他们指向同一个数组,所操作的也是同一个实体。他们存放在栈内存里面,所存储的内容为数组的存储地址0x0064。数组第一个元素被赋值为0,其他元素都是默认值0.
class ArryDemo
{
public static void main(String[] args)
{
int[] arry=new int[3]; ##定义一个数组
arry[0]=55;
arry[1]=11;
System.out.println(arry);##打印该数组的内存地址:[I@659e0bfd
System.out.println(arry[2]);##打印数组第三个元素,因为第三个元素没有被赋值,因此会使用默认值0
for (int i=0; i<arry.length; i++)##遍历arry数组
{
System.out.println(arry[i]);
}
int[] arry1=arry;##也就是arry和arry1两者引用都指向相同的数组。
arry[2]=33;##arry##改变了数组
System.out.println(arry1[2]);##arry1也跟着改变
}
}
选择排序和冒泡排序
class BubbleDemo
{
public static void main(String[] args)
{
int [] arry={3,2,4,5,1,9,6,4};
bubbleSort(arry);
for (int i=0;i<arry.length ; i++)
{
System.out.println(arry[i]);
} } public static void bubbleSort(int [] arry)//!!!! 操作数组时,是无返回的,因为就一个数组,只对这个数组进行操作,不需要返回
{
for (int x=0;x<arry.length-1;x++)//因为比较次数理解为间隔.
{
for(int y=0;y<arry.length-x-1;y++)//-x是让每次循环减去最后一个已经确定最大的元素,-1是因为以0开始
{ if (arry[y]>arry[y+1])
{
int tmp=arry[y];
arry[y]=arry[y+1];
arry[y+1]=tmp;
}
}
}
}
}
public static void selectSort(int [] arry)
{
for (int x=0;x<arry.length-1;x++)//比较次数理解为间隔
{
for(int y=1+x;y<arry.length;y++)//移位的进行比较
{ if (arry[x]>arry[y])
{
int tmp=arry[x];
arry[x]=arry[y];
arry[y]=tmp;
}
}
}
}
错误类型:
ArrayIndexOutOfBoundsException:操作数组时,场景:访问到了不存在的脚标
NullPointerException:空指针异常,场景:当引用没有任何指向,值为null时,该引用还在操作实体
二维数组定义:
1.int[][]arry=new int[3][2];//定义了 一个二维数组,二维数组有三个一维数组,每个一维数组含有2个元素
2.int[][]arry=new int[3][];
//每一维数组默认初始化值为null,可以对这三个数组分别进行初始化
arry[0]=new int[3];
arry[1]=new int[4];
arry[2]=new int[2];
【java】一维数组的更多相关文章
- 【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)
目录 视频讲解: 一.数组的概述 二.一维数组的使用 三.Arrays工具类中的sort方法(sort方法用的多,我们具体讲一下) 四.数组中的常见异常 五.一维数组练习题 六.彩蛋(本期视频使用的P ...
- 061 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 08 一维数组总结
061 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 08 一维数组总结 本文知识点:一维数组总结 总结 注意点
- 060 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 07 冒泡排序
060 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 07 冒泡排序 本文知识点:冒泡排序 冒泡排序 实际案例分析冒泡排序流程 第1轮比较: 第1轮比较的结果:把最 ...
- 059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环
059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环 本文知识点:增强型for循环 增强型for循环格式 案例练习增强型for循环 数组名字 ...
- 058 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 05 案例:求数组元素的最大值
058 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 05 案例:求数组元素的最大值 本文知识点:求数组元素的最大值 案例:求数组元素的最大值 程序代码及其执行过程 ...
- 057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和
057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和 本文知识点:求整型数组的数组元素的元素值累加和 案例:求整型数 ...
- 056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用
056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用 本文知识点:数组的实际应用 程序开发中如何应用数组? 程序代码及其运行结果: 不同数据类 ...
- 055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念
055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念 本文知识点:数组的概念 数组的声明创建.初始化 在学习数组的声明创建.初始化前,我们可以和之 ...
- 054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述
054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述 本文知识点:数组概述 为什么要学习数组? 实际问题: 比如我们要对学生的成绩进行排序,一个班级 ...
- java一维数组学习
/* * java学习: * 一维数组的使用: 声明语法 DataType[] name 或 DataType name[]. 初始化语法 DataType[] name = new DataType ...
随机推荐
- VB识别分隔符
strTypeEx = ReadIniFile("Type", "Type", App.Path & "\set.ini") str ...
- SQL server类型转换
1. CAST函数 语法: CAST ( expression AS data_type [ ( length ) ] ) | | | |关键字 表达式或值 要转换成的数据类型 最大长度 示例: SE ...
- Git 创建分支与合并分支
下面以branchName=>aiMdTest为例介绍 1. 下载code git clone masterUrl iva(另存文件名) 2. 创建并切换分支 cd iva git chec ...
- spring boot热启动
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- spring事务管理-Spring 源码系列(6)
Spring事务抽象的是事务管理和事务策略.而实现则由各种资源方实现的.我们最常用的数据库实现:DataSourceTransactionManager 尝试阅读一下spring 的实现代码,由3个核 ...
- Gym-101653:acific Northwest Regional Contest (2019训练第一场)
本套题没有什么数据结构题,图论题,唯一有价值的就是Q题博弈,在最后面,读者可以直接拉到最下面. (还剩下两个,估计每什么价值的题,懒得补了 M .Polyhedra pro:欧拉公式,V-E+F=2: ...
- xdoj 1067组合数学+动态规划 (一个题断断续续想了半年 233)
题目分析 : (8 4) 可以由(7 4),(6,4),( 4,4) 基础上转化 意味着一个新加入的元素可以按照它加入的方式分类,从而实现动态规划 核心:加入方式 新加入的元素构成转换环的元素个数(n ...
- HDU 1160:FatMouse's Speed(LIS+记录路径)
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- C++学习(二十三)(C语言部分)之 指针4
指针 指针 存放地址 只能存放地址 使用 &取地址运算符 *取值 解引用运算符 malloc 申请堆内存 free释放堆内存 1.1 指针 存放的地址(变量地址 常量区的地址 堆区内存首地址 ...
- ELFhash
字符串哈希算法(以ELFHash详解) 更多字符串哈希算法请参考:http://blog.csdn.net/AlburtHoffman/article/details/19641123 先来了解一 ...