Java 数组、排序和查找(1)
目录
前言
国庆第五天,一维数组基本知识的复习。
一、一维数组
(1)数组介绍
数组可以进行存放多个同一类型的数据。数组是一种引用数据类型,即数组就是一组数据。
(2)数组的使用
1)动态初始化
方法一:数据类型[ ] 数组名 = new 数据类型[大小]
如:int[ ] a = new int[5];
方法二:先声明数组: 数据类型 数组名[ ]
如:int[ ] a;
再创建数组: 数组名 = new 数据类型[大小]
如:a = new int[5];
2)静态初始化
方法:数据类型 数组名[ ] = {元素值1,元素值2……}
如:int a[5] = {1, 2, 3, 4, 5};
3)数组的引用
引用方法:数组名 [下标];
注意:数组的下标是从0开始的,如:a数组第三个数的引用方法为 a[2]
(3)数组的细节
1)数组是多个相同类型数据的组合,实现对这些数据的统一管理
2)数组中的元素可以是任何数据类型,但不能混用
3)数组的下标是从 0 开始
4)数组的下标必须在指定范围内,否则报错
5)数组创建后,如果没有赋值则会有默认值
int 0、shrot 0、byte 0、long 0、float 0.0、double 0.0、String null、boolean false
(4)应用案例
1)创建一个 char 类型的 26 个元素的数组,分别 放置'A'-'Z',使用循环访问所有元素
public class ArrayExercise01 {
public static void main(String[] args) {
char[] c = new char[26];
for(int i = 0; i < c.length; i++) {
c[i] = (char) ('A' + i);// 'A' + i 是 int型,需要强制类型转换
System.out.print(c[i] + " ");
}
}
}
输出结果:
2)请求出一个数组 int[] 的最大值 {4,-1,9,10,23},并得到对应的下标
public class ArrayExercise02 {
public static void main(String[] args) {
int[] a = {4 , -1 , 9 , 10 , 23};
int max = a[0];
int j = 0;
for(int i = 1 ; i < a.length ; i++) {
if(a[i] > max) {
max = a[i];
j = i;
}
}
System.out.println("最大值为:" + max);
System.out.println("最大值的下标为:" + j);
}
}
输出结果:
思路分析:
1. 定义一个 int 数组 int[] a = {4,-1,9, 10,23};
2. 假定 max = a[0] 是最大值 , j=0;
3. 从下标 1 开始遍历 a, 如果 max < 当前元素,说明 max 不是真正的最大值, 我们就 max = 当前元素; j = 当前元素下标;
4. 当我们遍历这个数组 a 后 , max 就是真正的最大值,j 最大值对应的下标
二、数组赋值机制
1)基本数据类型赋值,这个值就是具体的数据,相互不影响。
如:int n1 = 10; int n2 = n1;
2)数组在默认情况下是引用传递,赋的值是地址。
3)基本数据类型赋值演示:
public class ArrayAssign {
public static void main(String[] args) {
//基本数据类型赋值,赋值方式为值拷贝
//n2的变化,不会影响到n1的值
int n1 = 10;
int n2 = n1;
n2 = 80;
System.out.println("n1=" + n1);//10
System.out.println("n2=" + n2);//80
}
}
最后会输出:
4)引用传递演示:
public class ArrayAssign {
public static void main(String[] args) {
//数组在默认情况下是引用传递,赋的值是地址,赋值方式称为 引用传递,传递的是一个地址
int[] arr1 = {1,2,3};
int[] arr2 = arr1; //把arr1赋给arr2
//arr2 的值会影响 arr1 的值,所以称为引用传递
arr2[0] = 10;
for(int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]); // arr1 和 arr2 指向同一个数据空间
}
}
}
最后会输出:
三、数组拷贝
案例演示:
将 int[] arr1 = {10,20,30}; 拷贝到 arr2 数组, 要求数据空间是独立的。
public class ArrayCopy {
public static void main(String[] args) {
int[] arr1 = {10, 20, 30};
// 创建一个新的数组 arr2 , 开辟新的数据空间
// 大小 和arr1 一样大
int[] arr2 = new int[arr1.length];
//遍历 arr1 ,把每个元素拷贝到对应的位置
for(int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
arr2[0] = 100; // 修改 arr2 不会对 arr1 造成影响
System.out.print("arr1数组的值为:");
for(int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i] + " ");
}
System.out.println( );
System.out.print("arr2数组的值为:");
for(int i = 0; i < arr1.length; i++) {
System.out.print(arr2[i] + " ");
}
}
}
最后输出结果为:
可以看出 arr2 的改变没有影响到 arr1,这就是数组的拷贝,会开创独立的数据空间,不会互相影响。
总结
努力,成功!
相关文章
- java中数组转列表_Java数组转list
- java分层打印二叉树_基于Java的二叉树层序遍历打印实现
- java字符串的拆分_Java中的字符串分割 .
- java 上传文件接口_Java接口实现文件上传
- java指定长度数组长度_Java声明数组时不能指定其长度[通俗易懂]
- java数组排序去重_JAVA数组去重排序
- java %08d_总结Java中String.format()的使用[通俗易懂]
- 解析Java中文乱码的处理方法
- 详述 Java 语言中的格式化输出
- java冒泡排序经典代码_Java 8大经典排序算法(含源代码),必须收藏!
- java uuid 随机数_Java随机数和UUID[通俗易懂]
- java jersey使用总结_jersey Java Jersey配置「建议收藏」
- 【说站】java数组赋值
- java在线生成uuid_Java生成uuid
- java多维数组
- Java学习笔记之九java二维数组及其多维数组的内存应用拓展延伸详解编程语言
- Java学习笔记之二java标识符命名规范详解编程语言
- java中的数组排序(排序-冒泡排序)详解编程语言
- 标题:Linux下发布Java:开创新纪元(linux发布java)
- 处理解决Redis Java中Key的过期处理(redisjava过期)
- Linux下搭建 Java 开发环境(linux搭建java环境)
- 在Linux环境下轻松搭建Java开发环境(linux下搭建java)
- Java之oracle知多少(java的oracle)
- 使用Java实现Redis锁定的实现(redis锁定 java)
- java数组排序示例分享
- C#和Java中二维数组区别分析
- Java中集合和数组的排序方式小结