----------------------ASP.Net+Android+IOS开发----------------------期待与您交流!

 

数组

数组的定义

概念:同一种类型数据的集合。其实数组就是一个容器。

数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。

格式1:   元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

示例:    int[] arr =  new int[5];

格式2:    元素类型[] 数组名 = new 元素类型[]{元素,元素,......};

示例:    int[] arr = new int[]{1,2,3.4};

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

编译时报错:

ArrayIndexOutOfBoundsException 3: 运行时出现这个异常,表示操作数组时,访问                                        到了数组中不存在的角标。

NullPornterException: (空指针异常)当引用没有任何指向值为null的情况,该引              用还在用于操作实体。

数组的操作:

获取数组中的元素,通常会用到遍历。

数组中有一个属性可以直接获取到数组元素个数  .length

使用方法:数组名称.length

上图就是遍历该数组中的元素并且按格式打印

取最值:

获取数组中的最大值.

思路:

1.获取最值需要进行比较,每一次比较都会有一个较大的值,因为该值不确定。

通过一个变量进行临储。

2.让数组中的没一个元素都和这个变量中的值进行比较。

如果大于了变量中的值,就用该变量记录较大值。

3.当所有的元素都比较完成,那么该变量中存储的就是数组中的最大值了。

步骤:

1.定义变量,初始化为数组中任意一个元素即可。

2.通过循环语句对数组进行遍历。

3.在变量过程中定义判断条件,如果遍历到的元素比变量中的元素大,就赋值给        该遍历。

需要定义一个功能来完成,以便提高复用性。

1.明确结果,数组中的最大元素 int.

2.未知内容:一个数组.int[]

代码如下:

数组排序:

/*
对给定数组进排序:{2,3,5,1,6,8,4,7,9}
*/
public class Sort {
public static void selectSort(int[] arr){
for(int x = 0; x<arr.length-1; x++){
for(int y = x+1; y<arr.length; y++){
if(arr[x]>arr[y]){
/*
以下进行换位,定义一个第三方变量temp
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
*/
swap(arr, x, y);
}
}
}
/*
以上为选择排序
内循环结束一次,最值出现在头角标的位置
*/
}
public static void bubblingSort(int[] arr){
for(int x = 0; x<arr.length-1; x++){
for(int y = 0; y<arr.length-x-1; y++){    //-x:让每一次比较的元素减少。  -1:避免角标越界。
if(arr[y]>arr[y+1]){
/*
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
*/
swap(arr, y, y+1);
}
}
}
/*
以上为冒泡排序:相邻的两个元素进行比较,如果符合条件进行换位
第一圈,最值出现在最后位。
*/
}
public static void bianLi(int[] arr){
System.out.print("[");
for(int x = 0; x<arr.length; x++){
if(x!=arr.length-1)
System.out.print(arr[x] + ",");
else
System.out.println(arr[x] + "]");
}
}
/*
无论什么排序,都需要对满足条件的元素进行位置互换,
所以可以把这部分相同的代码提取出来,单独封装成一个函数。
*/
public static void swap(int[] arr, int a, int b){
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
public static void main(String[] args){
int[] arr = {2,3,5,1,6,8,4,7,9};
bianLi(arr);
bubblingSort(arr);
bianLi(arr);
//Arrays.sort(arr); Java中已经定义好的一种排序方式。开发中,对数组排序,要使用该语句代码。(需要导入java.util.*)
}
}

二维数组

格式1: int[][] arr = new int[2][3];

定义了名称为arr的二维数组

二维数组中有3个以为数组

每一个一维数组中有2个元素

一维数组的名称分别为arr[0], arr[1], arr[2]

给第二个一维数组2脚标位赋值为78写法是:arr[1][2] = 78;

图中栈内存有arr,有个内存地址指向堆内存二维数组的内存地址

堆内存中有个二维数组里装了两个一维数组数组arr[0]和arr[1]

如果要想给第二个一维数组的二脚标赋值78那就可以写成:arr[1][2] = 78

格式2: int[][] arr = new int[3][];

二维数组中有3个一维数组

每一个一维数组都是默认初始化值null

可以对这个三个一维数组分别进行初始化

arr[0] = new int[3];

arr[1] = new int[1];

arr[2] = new int[2];

格式3: int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};

例:     比如一个公司有3个销售组,想获取这个公司的总销售额

代码如下:

----------------------ASP.Net+Android+IOS开发----------------------期待与您交流!

详情请查看:http://edu.csdn.net

黑马程序员————数组(day4)相关推荐

  1. 黑马程序员--数组与集合互相转变

    --------- android培训.java培训.期待与您交流! --------- 7 数组与集合的相互转变 7.1 数组转变成集合 1,为什么把数组转变成集合呢?有什么好处呢? 数组转变成集合 ...

  2. 黑马程序员——c语言学习心得——函数传递二维数组

    黑马程序员--c语言学习心得--函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.    变量 ...

  3. 【黑马程序员 C++教程从0到1入门编程】【笔记1】数据类型、运算符、程序流程结构、数组、函数、指针、结构体

    黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1.C++初识 1.1 第一个c++程序 1.2 注释 1.3 变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 2 ...

  4. 黑马程序员C语言基础(第五天)运算符与表达式、程序流程结构、数组和字符串、函数

    https://www.bilibili.com/video/BV15W411K7k6?p=93&spm_id_from=pageDriver 黑马程序员C语言基础(第五天)运算符与表达式.程 ...

  5. 黑马程序员匠心之作|C++教程从0到1入门编程(60 指针-const修饰指针61 指针-指针和数组62 指针-指针和函数63 指针-指针配合数组和函数的案例)

    黑马程序员匠心之作|C++教程从0到1入门编程(60 指针-const修饰指针61 指针-指针和数组62 指针-指针和函数63 指针-指针配合数组和函数的案例) 一.60 指针-const修饰指针 二 ...

  6. 【黑马程序员 C++教程从0到1入门编程】【笔记3】C++核心编程(内存分区模型、引用、函数提高)

    黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1 内存分区模型 1.1 程序运行前 1.2 程序运行后(手动开辟内存:c语言malloc,c++new) 1.3 new操作 ...

  7. 【黑马程序员 C++教程从0到1入门编程】【笔记2】通讯录管理系统

    黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1.系统需求 2.创建项目 2.1 创建项目 3.菜单功能 4.退出功能 5.添加联系人 5.1 设计联系人结构体 5.2 设 ...

  8. 黑马程序员C语言基础(第八天)复合类型(自定义类型)(结构体)、共用体(联合体)、枚举enum、 typedef

    黑马程序员C语言基础(第一天) 黑马程序员C语言基础(第二天) 黑马程序员C语言基础(第三天) 黑马程序员C语言基础(第四天)数据类型 黑马程序员C语言基础(第五天)运算符与表达式.程序流程结构.数组 ...

  9. 黑马程序员C语言基础(第七天)内存管理

    黑马程序员C语言基础(第一天) 黑马程序员C语言基础(第二天) 黑马程序员C语言基础(第三天) 黑马程序员C语言基础(第四天)数据类型 黑马程序员C语言基础(第五天)运算符与表达式.程序流程结构.数组 ...

最新文章

  1. 解决Linux CENTOS服务器 tree命令出现乱码 解析原因
  2. linux系统报错01031,在Linux环境下设置 ora-01031:insufficient privileges解决方法总结
  3. 多路 IO 转接 :poll 函数
  4. Access-数据类型与.net OleDbType枚举类型对应关系
  5. 10款交互设计原型开发工具(转)
  6. python web服务器 apache_Windows下搭建Apache+Django+Python Web服务环境
  7. Easyui Datagrid相同连续列合Demo之三
  8. slf4j + log4j2配置日志引擎
  9. Delphi中线程类TThread实现多线程编程2---事件、临界区、Synchronize、WaitFor……
  10. SQL高级---SQL ALTER TABLE 语句
  11. Atitit 提升开发效率的方法 提升语言级别 目录 1. 提升语言级别到4gl 1 1.1. 语言的代际关系 sql 》script 》java 1 1.2. 使用4gl dsl语言与api 1
  12. 用c++做文本加密与解密程序(源码)
  13. Android动画插入器
  14. 抖音短视频实操:抖音热门视频的分类特点,如何选择视频内容(中)
  15. package.json 文件详解
  16. 近距离传感器(proximity sensor)
  17. Linux 使用系统调用进行文件读写
  18. OpenAcc的使用
  19. python 挂起_Python Killing挂起函数
  20. 机器人c语言入门自学app,小车机器人之二【C语言基础】

热门文章

  1. 没想到钱多多的求职之路竟如此艰辛,求大佬指点
  2. android 点阵字体生成,点阵字体 ASCII码 汉字库 自我学习 简单总结
  3. k8s 证书过期解决
  4. 13. 谈谈 Redis 的过期策略
  5. python字典存储省份与城市_python实现城市和省份字典(根据城市判断属于哪个省份)...
  6. 史上最全的PHP常用函数大全,不看看你就out了(还会不断更新哦!)
  7. docker部署博客项目
  8. php date t_细说PHP的日期时间函数date()
  9. mysql y m d h_php时间问题?mysql数据库的时间格式(Y-M-D H:I:S) 在PHP页面想这样显示(Y-M-D) ('.$rows['ndate'].')...
  10. PS容器包装样机设计教程分享