2013.07.27
这节课我们要讲的是数组,数组我在学C的时候就接触过,但是java的数组和C还是有所区别的,我们还是一点点的进行介绍。
1、连续空间
首先要定义一个数组,我们这里定义一个int类型数组:int[] array = new int[10];
定义数组时,会在内存中开辟一个空间,大小由4*8*10=320个0 1组成。而且这段空间是连续的,array代表一个首地址,也是array[0]的地址,后面的会根据下表计算其地址。
2、类型固定
定义了一种类型后,就不能再更改,比如我们int[] array = new int[10];
这样就定义了整型数组,那么以后我们使用array[0]时,就要以他为整型去用,而且不能把字符串赋给他。
3、空间固定大小
一旦定义了一个数组,就在内存中开辟了一块固定的空间,其大小不允许再被改变。要是我们开辟了一个长度为10的数组array,当我们引用array[10]时,就会报错说数组溢出。
4、定义方式
数组有多种定义方式,除了我们上面所说的int[] array = new int[10];
还有就是:int[] array = {1,2,3,4,5};
int[] array2 ;array2 = array;
int[] array = new int[]{1,2,3,4,5};
5、数组只有一个唯一的属性:length
数组是一个容器,但是没有方法,而且只有一个属性,那就是数组的长度。知道数组的长度和数据类型,就可以去使用这个数组了。
作业:1、数组排序:我们这里直接调用Arrays类下的sort方法,对数组进行快速排序。
我们这里介绍4种方法:
//希尔排序 private void shellsort() { int[] array = { 123, 42, 12, 58, 29, 56 }; for (int in = array.length / 2; in > 0; in /= 2) { for (int i = in; i < array.length; i++) { int t = array[i]; int j = 0; for (j = i; j >= in; j = j - in) { if (t < array[j - in]) { array[j] = array[j - in]; } else { break; } } array[j] = t; } } } //插入排序 private void insort() { int[] array = { 123, 42, 12, 58, 29, 56 }; for (int i = 1; i < array.length; i++) { for (int j = i; j > 0; j--) { if (array[j] < array[j - 1]) { int t = array[j]; array[j] = array[j - 1]; array[j - 1] = t; } } } } //选择排序 private void selectsort() { int[] array = { 123, 42, 12, 58, 29, 56 }; for (int i = 0; i < array.length; i++) { int min = i; for (int j = i + 1; j < array.length; j++) { if (array[min] > array[j]) min = j; } int t = array[i]; array[i] = array[min]; array[min] = t; } } //快速排序 public void arraysort() { int[] array = { 123, 42, 12, 58, 29, 56 }; //调用Array类中的sort方法 Arrays.sort(array); }
2、二维数组:随机赋值,找出最大值,输出值,行,列
public void sort() { //初始化一个数组对象 int[][] array = new int[5][5]; //实例化一个随机数对象 Random r = new Random(); //定义一个整型对象记录最大值 int max = 0; //循环进行随机赋值 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { array[i][j] = r.nextInt(10); } } //循环找到最大值 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { if (max < array[i][j]) max = array[i][j]; } } System.out.println("最大值为"+max); //循环遍历找到最大值所在的行和列 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { if(array[i][j]==max){ System.out.println("第"+i+"行,第"+j+"列"); } } } }
相关推荐
动力节点老杜Java基础入门学习教程分享——数组
java基础——数组及其应用(csdn)————程序
一维数组概念:一组连续的存储空间,存储多个相同数据类型的值。数组的创建。数组的组成。数组的遍历。数组的默认值。
这一款整理发布的Java语言程序设计讲义——数组与字符串,适用于日常学习、参考、借鉴Java语言...该文档为Java语言程序设计讲义——数组与字符串,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
Java程序设计课程实验4-数组Java程序设计课程实验4-数组Java程序设计课程实验4-数组Java程序设计课程实验4-数组Java程序设计课程实验4-数组Java程序设计课程实验4-数组Java程序设计课程实验4-数组Java程序设计课程...
Java之SSH深入浅出——精简剖析
NULL 博文链接:https://yuan.iteye.com/blog/301491
关于数据结构中的稀疏数组简单案例——java版(csdn)————程序
在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[] arrays = new String[] { gyu, sdf, zf, 大同, 收到, 地方, 三等分, 的人, 反对高铁, 泛代数, 上的投入...
Java语言编程 在方法中使用数组 Java语言编程 在方法中使用数组
java高端技术课程--Java数组如何实现复制java高端技术课程--Java数组如何实现复制java高端技术课程--Java数组如何实现复制java高端技术课程--Java数组如何实现复制
java调用存储过程返回数组 学习下 对你会有不小的帮助
自我学习的总结
附件内容为:Java组装map数据,然后转换为json数据格式;Java解析json数据
利用Java进行疫情大数据分析——“Java面向对象程序设计”课程实践教学设计研究.pdf
Java数组阶段的选择题、填空题、编程题、判断题都有,适合想自己测试下的学生以及准备出题的老师
Java 基本语法(四)——字串和数组 Java 基本语法(四)——字串和数组
数组作为方法返回值类型 学习目标 1 理解方法返回值类型是数组 引用类型的方法签名; 2 理解并学会数组作为方法返 回值类型的方法编写; 3 理解并熟知数组作为返回值 类型的方法调用。 方法的返回值类型 方法的...
——————————————————————————————————————————————