---------------------------------------- android培训、java培训、期待与您交流! ------------------------------------
数组是JAVA语言的内置数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素(按角标查询,所以说查询速度比较快),但是速度快是有一定代价的,当你创建一个数组之后,它的长度(容量)就固定了,而在当程序运行后是不能改变的。还有一点,java里面的数组是会做边界检查的,所以当你访问越界时,会抛出RunntimeException.
容器这个词特别好理解,一听就是用来存放东西的,最常见的容器有数组[]和集合,集合说简单点就是数组的升级版,是在数组的基础上加强的。
首先我们谈谈数组:
数组的定义[]方式:
1.int[] arr =new int[5]; //制定数组的大小,也就是容量,arr这个数组可以存储5个int数据
2.int arr[] = {5,2,3};
3.int arr[] = new arr[]{5,3,2};
获取数组的方式arr[0]; 数组的下标是从零开始的
遍历数组的方式:for循环,foreach
for(int i=0;i<arr.length;i++){ for(int i : arr){
System.out.println(arr[i]);System.out.println(i);
}}
还有一些排序算法什么的我会单独列出一篇文章。
我们在这里说一说数组和集合ArrayList的区别:
数组比较高效,保存基本数据类型,长度不可变,大小固定
集合ArrayList动态数组,它的大小是可变的,主要保存对象
数组如果是int[]数组就只能添加int数据,集合ArrayList如果没有添加泛型可以添加各种数据类型
获取数组的中的最大值:
package array;
public class GetArrayMaxValue {
public static void main(String[] args) {
int[] arr = { 5, 6, 7, 1, 2 };
int result = getArrayMaxValue(arr);
System.out.println(result);
}
// 返回的最大值的索引
public static int getArrayMaxValue(int[] arr) {
int index = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] > arr[index]) {
arr[index] = arr[i];
}
}
return arr[index];
}
}
查找数组中某个值的索引:
package com.itheima.arr;
public class Test3 {
public static void main(String[] args) {
int[]arr={4,5,1};
System.out.println(getIndex(arr, 6));
}
public static int getIndex(int[] arr, int key) {
int index = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == key) {
index = i;
}else{
return -1;
}
}
return index;
}
}
二维数组:
package com.itheima.arr;
public class Test2 {
public static void main(String[] args) {
// int [][]arr = new int[3][4];//定义了名称为arr的二维数组,这个二维数组中有三个一维数组
// 每一个一维数组中有4个元素,3是二维数组的长度
// int[][] arr = new int[3][];
// arr[0] = new int[4];
// arr[1] = new int[3];
// arr[2] =new int[2];
// System.out.println(arr.length);
// System.out.println(arr[0].length);
// 什么时候定义二维数组,比如说公司统计小组销售额,分组
int sum = 0;
int[][] arr = { { 3, 5, 1 }, { 2, 3, 6 }, { 2, 3, 4, 5 } };
//二维数组的遍历和求总和
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
sum += arr[i][j];
System.out.print(arr[i][j]);
}
System.out.println();
}
System.out.println(sum);
}
}
Java.util包里面有一个Arrays类,它包含了一系统操作数组的static方法,其中最基本的4个方法:用来比较两个数组是否相等的equals();用来填充的fill(); 用来对数组排序的sort();以及用于在一个已经排序的数组中查找元素的binarySearch()。所以这些方法都对primitives和Object进行了重载。此外还有一个asList()方法,它接收一个数组,将数组转换为List容器。
---------------------------------------- android培训、java培训、期待与您交流! ------------------------------------