数组的概念
数组的使用
以下代码示例
数组的概念:
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器
数组既可以存储基本数据类型,也可以存储引用数据类型
数组是一组相关数据的集合,一个数组实际上就是一连串的变量.
1.内存空间连续
2.同一种数据类型
数组声明和使用:
intl] array = (1,2,3,4);
intl] array = new int[5]:
赋值
数组的使用:
数组的长度数组名.length
。数组的索引 从0开始,最大的索引: 数组名.length-1
指定索引位置数组的元素
查询: 数组名[索引]
修改:数组名[索引] = 数值;
// A code block
以下代码示例:
数组格式代码示例
// public class Demo01 {
/**
数组: 内存空间连续的一块区域,用来存储同一种数据类型的多个元素
重点: 1 连续 同一种数据类型
2 索引: 从0开始
*/
/**
* 数组的声明
* 1. 格式: 数据类型[] 数组名; 数组名其实就是一个变量名
* 2 定位数组的位置: 数组名[索引] ,比如说第0个元素: 数组名[0]
*/
public static void main(String[] args) {
// 第一种: 一般情况下,当我们不知道数据里面有什么内容的时候,我们会先声明一个数组,然后再去赋值
int[] array = new int[5];
array[0] = 1;
array[1] = 3;
array[2] = 5;
array[3] = 6;
array[4] = 7;
// 第二种
int[] array2 = new int[]{1,3,5,7,9};
// 第三种, 虽然我们没有明确的指定数组的长度,但是一旦声明了以后,长度就固定了
int[] array3 = {1,3,5,7,9};
// array3[5] = 10;
String[] names = {"王工", "冀工", "金工", "吴工" };
int[] chars = {120,'a','韩'};
}
}
// A code block
数组的遍历
for(int i=0;i<数组名.length; i++X
System.out.println(数组名[索引]
// public class Demo03 {
/**
* 数组的遍历:
* 1 索引:从0开始,到数组的长度-1结束
* 2 数据的长度: 数组名.length
* 3 数组名[索引] 定位数组中的元素
*/
public static void main(String[] args) {
int[] ages = {18,19,20,21,22,23,24,25,26,27,28,29,30};
int length = ages.length;
System.out.println(length);
System.out.println(ages[1]);
for (int i = 0; i < ages.length; i++) {
System.out.println("索引:"+i+" 值:"+ages[i]);
}
System.out.println(ages);
}
}
// A code block
工具类
Arrays.toString(数组名) 如果直接打印数组名得到的是一个内存地址,我们看不懂。 就是将数组以字符串
的方式打印出来。
Arrays.copyof(数组名,复制的长度)得到一个新的数组
Arrays.sort(数组名)
在原来的数组上进行排序
//import java.util.Arrays;
public class Demo04 {
/**
*
工具类: 就是为了方便我们的开发,提供一些常用的方法
*/
public static void main(String[] args) {
int[] ages = {4,2,71,9,5,3,8};
// 一般在服务器上打印日志的时候,会使用到这个方法
System.out.println(Arrays.toString(ages));
// 一般有自然排序的时候,会使用到这个方法
Arrays.sort(ages);
System.out.println(Arrays.toString(ages));
//一般在数组扩容的时候,会使用到这个方法
int[] ints = Arrays.copyOf(ages, 10);
System.out.println(Arrays.toString(ints));
}
}
// A code block
最大最小值
//import java.util.Arrays;
public class Demo05 {
/**
* { 77, 80, 5, 100,20,15}
* @param args
*/
public static void main(String[] args) {
int[] array = {77, 80, 5, 100, 20, 15};
// int max = array[0]; // 存放最大值
// for (int i = 0; i < array.length; i++) {
// if(max<array[i]){
// max = array[i];
// }
// }
//
// System.out.println(max);
// Arrays.sort(array);
// System.out.println(array[array.length-1]);
int min = array[0]; // 存放最小值
for (int i = 0; i < array.length ; i++) {
if(min>array[i]){
min = array[i];
}
}
System.out.println(min);
Arrays.sort(array);
System.out.println(array[0]);
}
}
// A code block
数字排序
// import java.util.Arrays;
public class Demo07 {
public static void main(String[] args) {
int[] arrays = {11, 6, 3, 8, 99, 25, 43};
for (int i = 0; i < arrays.length-1; i++) {
for (int j = 0; j < arrays.length-1-i; j++) {
if(arrays[j]<arrays[j+1]){
int temp = arrays[j+1];
arrays[j+1] = arrays[j];
arrays[j] = temp;
}
}
}
System.out.println(Arrays.toString(arrays));
}
}
**年龄的插入 示例:**
//public class Zuoye8 {
public static void main(String[] args) {
int[] ages = {32, 51, 28, 40, 29, 22, 23};
int[] ints = Arrays.copyOf(ages, ages.length + 1);
System.out.println(Arrays.toString(ints));
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你要插入的年龄:");
ints[ints.length - 1] = scanner.nextInt();
System.out.println(Arrays.toString(ints));
for (int i = 0; i < ints.length - 1; i++) {
for (int j = 0; j < ints.length - 1 - i; j++) {
if (ints[j] > ints[j + 1]) {
int temp = ints[j + 1];
ints[j + 1] = ints[j];
ints[j] = temp;
}
}
}
System.out.println(Arrays.toString(ints));
}
}
// 身高最小值
//import java.util.Arrays;
import java.util.Scanner;
public class Zuoye9 {
public static void main(String[] args) {
int[] height =new int[5];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.println("请输入第" + (i + 1) + "个身高");
height[i] = scanner.nextInt();
}
System.out.println(Arrays.toString(height));
int min=height[0];
for (int i = 0; i <height.length; i++) {
if(min>height[i]){
min=height[i];
}
}
System.out.println(min);
}
}