感觉好久没有写总结了似的。~这回的主角是关于一维数组、二维数组和有关数组排序的问题。
首先来总结一下一维数组。
什么是数组呢?。可以把数组理解成为一种容器,这个容器的作用是用来储存数据的,而且那些数据要求都是同一种数据类型的。而且,数组中的数据在内存中的存储是占用一整块连续的内存空间。这些特点使得数组变得十分好用而方便。
那么怎样来定义一个数组呢?
最基本的方法应该是这样的:
数据类型 [] 数组名 = new 数据类型[数组长度];
例如我们要建立一个用来存储十个整形数据的数组的定义方式就是: int [] array = new int[10];
这种定义直接定义了数组的长度,并没有给数组的元素赋初值。如果定义的数组是存储int型数据,那么系统会默认给每一个元素的初值为0。
另一种定义数组的方法是在定义的时候直接给数组的元素赋值。例如
int [] array = new int[]{1,2,3};
还有一种定义一维数组的方法就是先定义一个数组的名字,再给他赋值。在给数组赋值的时候我们经常用的方法是用循环。
int [] array = new int[10];
for(int i = 0;i<array.length;i++){
int j = 0;
array[i] = j++;
}
这样就会通过一个循环给array这个数组赋值,从0到9。这个方法中用到了一个length。可以分析出length是数组类中的一个属性,通过查看api也可以查到数组只有length这一个属性,我们通过调用array.length就可以得到数组的长度。
还有一点要注意的是数组中元素的下标是从0开始的。例如一个长度为10的数组,他的元素是array[0]、array[1]、array[2]…………array[9]
接下来总结一下对数组进行排序的方法。
首先先来用随机数来生成一个无序的整形数的数组。
int[] array = new int[length];
Random ran = new Random();
//给数组元素付初始值
for(int i = 0;i<array.length;i++){
int val = ran.nextInt(100)+100;
array[i] = val;
}
//输出数组元素
System.out.print("\t");
for(int i = 0;i<array.length;i++){
System.out.print(array[i]+"\t");
}
其中用到了生成的随机数。这里注意一下吧,其中nextInt(100)+100生成的随机数的范围是从100到199。
这样生成的就是一个有10个随机整形数据的数组。然后就是对这个数组的排序。对一维数组的排序的方法有很多,其中大致可以分为:冒泡排序,选择排序,插入排序,希尔排序,快速排序等等多种不同的算法。这里只说一种比较简单的冒泡排序吧。
首先先来了解一下冒泡排序的原理吧:
冒泡排序的大体步骤首先是数组中第一个数据跟后面的每一个数据进行比较,如果是小于的关系则保持原位置不动,若是大于的关系,则调换两个元素,这样经过第一轮的比较就会把这个数组中最小的元素给排到这个数组中的第一个位置。第二轮比较则是将数组中第二个元素依次与后面的进行比较…………就这样每一轮排序都会把最小的筛选出来,最后完成排序。
这就是冒泡排序的代码:
//冒泡排序
public static int [] maopao(int[] array){
for(int i = 0; i<array.length;i++){
for(int j = i+1;j<array.length;j++){
if(array[i]>array[j]){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array
}
这样就可以通过调用这个冒泡排序的方法,返回的则是一个排好序的数组了。
如果把一维数组弄明白了,那么二维数组也就很简单了。
在java中实际上是没有二维数组的概念的,因为一个数组可以定义成为任意类型,所以如果定义一个一维数组是用来存储一维数组的,那他实际上就是一个二维数组。
例如如果我们这样建立一个二维数组: int x [][] = new int [3][5]; 他其实就是一个长度为3的一维数组,而这个一维数组的每一个元素又是一个长度为5的一维数组。
二维数组的使用也比较简单,赋值的时候只要使用一个双层循环就可以了。还有一点就是二维数组中length的使用,这是与普通的一维数组不同的。
例如我们想知道这个二维数组第3行有多少列,那样就是: x[2].length;
我们要是想知道这个二维数组一共有多少行,那就是: x.length;
那~~对数组的一个小总结就到这里。~有更新还会补充~~#^_^
分享到:
相关推荐
动力节点老杜Java基础入门学习教程分享——数组
java基础——数组及其应用(csdn)————程序
一维数组概念:一组连续的存储空间,存储多个相同数据类型的值。数组的创建。数组的组成。数组的遍历。数组的默认值。
这一款整理发布的Java语言程序设计讲义——数组与字符串,适用于日常学习、参考、借鉴Java语言...该文档为Java语言程序设计讲义——数组与字符串,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
java代码-使用java增强for循环 string数组赋值的源代码 ——学习参考资料:仅用于个人学习使用!
NULL 博文链接:https://yuan.iteye.com/blog/301491
自我学习的总结
采用另一种变量结构,能存放批量数据——数组。 数组的基本概念 数组是一种数据结构,在内存中连续存放。 用来存放相同数据类型的批量数据。 a 0 1 2 3 4 5 6 7 8 9 数组的基本概念 数组是一组名字相同下标不同,...
java代码-使用java解决回文二维数组的源代码 ——学习参考资料:仅用于个人学习使用!
javascript从入门到跑路—–小文的js学习笔记(1)———script、alert、document。write() 和 console.log 标签 … … javascript从入门到跑路—–小文的js学习笔记目录 ** 含义: 使用单独的变量名来存储一系列的...
目录数组的概念数组的创建数组的引用数组的创建数组元素的初始化数组的使用使用数组数组的复制多维数组 数组的概念 数组由同一类型的对象或者基本数据组成,并封装在同一一个标识符(数组名称)下。 数组是对象 动态...
关于数据结构中的稀疏数组简单案例——java版(csdn)————程序
java代码-使用java解决从字符串中解析二维数组的源代码 ——学习参考资料:仅用于个人学习使用!
java实现队列(数组结构)(csdn)————程序
java代码-使用java解决输出数组中加起来最大两个元素的值的源代码 ——学习参考资料:仅用于个人学习使用!
Java基础应用,数组的运用,方法的运用。完成ATM的程序。
java代码-使用java计算NxN整型数组中主对角线和副对角线上数字之和的源代码 ——学习参考资料:仅用于个人学习使用!
jni学习——对简单类型数组的访问,本示例通过2中方法介绍java与c之间的通信。