数组

原创 2016年06月01日 17:18:22

一、概念

同一种类型数据的集合

二、数组的好处

可以自动给元素从0开始编号,方便操作这些元素。

三、数组的格式

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

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

另一种初始化方式:

元素类型[] 数组名 = {元素,元素,元素….};

例如:int[] arr = {1,32,4,5,6,};

四、数组的常用操作:

1,获取数组的长度

使用length属性获取;

如:arr.length;

2,遍历获取数组中所有元素

for(int i=0; i<arr.length;i++)

System.out.println("arr["+i+"]="+arr[i]);


五、什么时候使用数组:

当元素较多时,为了方便操作这些元素,会先进行临时存储。

六、特点:

数组是固定长度的。

七、数组练习:

1,获取数组中的最大值

/*

 *获取数组中的最大值 思路:

 *1。定义一个变量,用于记录每次比较完比较大的元素,初始化变量值为数组第一个元素

 *2.通过循环让每一个元素都和该变量中的元素进行比较 在遍历过程中定义条件,将比较大的元素用变量进行记录。

 */

publicstatic int getMax(int[] x) {

inttemp = x[0];

for(int i = 1; i < x.length; i++) {

if(temp < x[i])

temp= x[i];

}

returntemp;

}

2,对数组进行选择排序

特点:先确定一个位置,不断的通过这个位置上的元素和其它元素进行比较,如果满足条件,元素进行换位,还是已该位置元素进行比较。内循环结束一次,在0角标位出现最值。

/*

 * 对数组进行选择排序升序

 */

publicstatic void selectSort(int[] arr) {

for(int x = 0; x < arr.length; x++) {

for(int y = x + 1; y < arr.length ; y++) {

if(arr[x] > arr[y]) {

inttemp = arr[x];

arr[x]= arr[y];

arr[y]= temp;

}

}

}

}

3,对数据进行冒泡排序

特点:是相邻两个元素进行比较,内循环结束一次,最尾标位出现最值。

/**

 * 冒泡排序

 */

publicstatic void bubbleSort(int[] arr)

{

for(intx=0;x<arr.length;x++)

{

for(int y=0;y<arr.length-x-1;y++)

{

if(arr[y]>arr[y+1])

{

inttemp = arr[y];

arr[y]= arr[y+1];

arr[y+1]= temp;

}

}

}

}

八、折半查找

必须是对有序的数组进行查找。

/**

 * 折半查找

 */

publicstatic int halfSearch(int[] arr, int key) {

intmax, min, mid;

min= 0;

max= arr.length - 1;

mid= (max + min) / 2;

 

while(arr[mid] != key) {

if(key > arr[mid])

min= mid + 1;

elseif (key < arr[mid])

max= mid - 1;

 

if(min > max)

return-1;

 

mid= (max + min) / 2;

}

 

returnmid;

}

九、数组应用

/**

 * 十进制数转换二进制或者十六进制公用类

 *

 * @author Administrator

 *

 */

public classShiToBinAndHex {

 

/**

 * 十进制转换二进制操作

 * @param num十进制数

 * @return

 */

publicString toBinary(int num){

returntrans(num,1,1);

}

 

/**

 * 十进制转换十六进制操作

 * @param num十进制数

 * @return

 */

publicString toHex(int num){

returntrans(num,15,4);

}

 

/**

 * 十进制转换私有方法

 * @param num需要转换的十进制数

 * @parambase &与上执行的基数

 * @paramoffset 右移位数

 * @return 转换后的字符串

 */

privateString trans(int num, int base, int offset) {

// 定义一个十六进制元素表

char[]chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',

'B','C', 'D', 'E', 'F' };

 

char[]arr = new char[32];

intpos = arr.length;

while(num != 0) {

inttemp = num & base;

arr[--pos]= chs[temp];

num= num >>> offset;

}

 

StringprintNum = printArr(arr, pos);

returnprintNum;

}

 

privateString printArr(char[] arr, int pos) {

returnnew String(arr, pos, arr.length - pos);

}

}

十、二维数组

书写格式:

int[][] x = new int[2][3];

int[][] x = new int[2][];

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

 

获取arr二维数组的和:

intsum = 0;

for(int i = 0; i < arr.length; i++) {

int[]childArr = arr[i];

for (int y = 0; y< childArr.length;y++) {

sum += childArr[y];

}

}

什么时候使用数组:

数据多了要用容器存储,而数据按照其特点分出了多个部分,每个部分中还有一堆数据。这事可以将部分封装成小数组,在将这些小树组封装到二维数组中。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

1008. 数组元素循环右移问题 (20)

1008. 数组元素循环右移问题 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B ...

bmp转c数组(误差扩散)

  • 2017-04-26 17:06
  • 60KB
  • 下载

HDU 5714 树状数组 + 离散化

题意: Problem Description 小明在旅游的路上看到了一条美丽的河,河上有许多船只,有的船只向左航行,有的船只向右航行。小明希望拍下这一美丽的风景,并且把尽可能多的船只...

java数组总结使用手册

  • 2017-07-09 17:24
  • 725KB
  • 下载

内存结构数组数据管理

  • 2017-06-23 16:47
  • 8.12MB
  • 下载

Vue 之数组

1.问题今天用Vue的时候,发现一个问题: array[index].flag = ture对应的视图不发生变化 最后多方查寻发现,VUE对数组的直接操作index赋值监测不了 也就是说 下面...

二维数组最大值最小值

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)