Java基础--------------------------数组--------------------------
来源:互联网 发布:背叛了男朋友 知乎 编辑:程序博客网 时间:2024/06/05 21:02
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
<span style="font-size:24px;">数组</span>
A.数组的概念
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
数组既可以存储基本数据类型,也可以存储引用数据类型。
B.数组的格式
格式1: 数据类型[] 数组名;
格式2: 数据类型 数组名[];(了解)
[ ]:表明这是一个数组
举例:
int[] a; 定义了一个int类型的数组a;
int a[]; 定义了一个int类型的a数组;
推荐使用第一种定义方式。
格式2: 数据类型 数组名[];(了解)
[ ]:表明这是一个数组
举例:
int[] a; 定义了一个int类型的数组a;
int a[]; 定义了一个int类型的a数组;
推荐使用第一种定义方式。
C.数组的初始化
a:什么是数组的初始化
Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
b:初始化的分类:
a:动态初始化: 只指定长度,由系统给出初始化值
b:静态初始化: 给出初始化值,由系统决定长度
注意事项: 这两种方式,只能使用一种,不能进行动静结合
c:动态初始化的格式:
数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
举例: int[] arr = new int[3]; 定义了一个int类型的数组arr,这个数组可以存放3个int类型的值。
Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
b:初始化的分类:
a:动态初始化: 只指定长度,由系统给出初始化值
b:静态初始化: 给出初始化值,由系统决定长度
注意事项: 这两种方式,只能使用一种,不能进行动静结合
c:动态初始化的格式:
数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
举例: int[] arr = new int[3]; 定义了一个int类型的数组arr,这个数组可以存放3个int类型的值。
class ArrayDemo {public static void main(String[] args) {//定义一个数组 //int[] arr;//可能尚未初始化变量arr //动态初始化一个数组 定义了一个int数据类型的数组arr,元素个数是3个 int[] arr = new int[3];/* 左边: int 说明数组中存储元素的数据类型是int[] 表示这是一个数组arr 数组的名字 右边: new:就是为数组在内存中开辟了一块空间int:说明数组中存储元素的数据类型是int[]: 表示这是一个数组3: 数组中有3个元素.*/System.out.println(arr);//[I@191c0b76}}D.数组的遍历.
定义:数组遍历:就是依次输出数组中的每一个元素。
数组长度: 格式:数组名.length
数组遍历: 就是把数组中的每个元素依次拿出来 原始做法,通过数组[索引] 拿到每个元素*/class ArrayTest{public static void main(String[] args) { /*//定义一个数组int[] arr = {5,7,1,3};//我想遍历System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println(arr[3]); System.out.println("--------------");//观察 for(int i = 0;i<4;i++){ System.out.println(arr[i]);} System.out.println("--------------");int[] arr2 = {5,7,1,3,6,7,33,2,3,4,5,6,72,2,34,3};//前面我们是自己数的数组中元素的个数,如果元素过多,数不过来咋办//想要知道数组里有多少个元素 // 数组的长度 就是 数组名.length 这个东西的返回值是一个int类型的//第一个元素的索引是0 最后一个元素的索引是 数组名.length-1//System.out.println(arr2.length); //知道长度以后再写for(int i = 0;i<=arr2.length-1;i++){ System.out.println(arr2[i]);} */int[] arr = {5,7,1,3}; int[] arr2 = {5,7,1,3,6,7,33,2,3,4,5,6,72,2,34,3};print(arr); print(arr2);
E.数组的反转
数组元素反转(就是把元素对调)
数组逆序,反向遍历,索引从最大值,向最小值遍历.
数组反转 数组中每个元素,位置交换
数组逆序,反向遍历,索引从最大值,向最小值遍历.
数组反转 数组中每个元素,位置交换
数组元素反转(就是把元素对调) 数组逆序:就是反过来遍历,索引从大到小遍历.仅仅做了遍历,没有改变过数组元素的顺序. 数组反转:就是把元素对调 int[] arr = {3,6,2,5,7}; 反转之前的数组 int[] arr = {7,5,2,6,3}; 反转之后的数组*/class ArrayTest3{public static void main(String[] args) {int[] arr = {3,6,2,5,7};//做逆序遍历for(int i =arr.length-1;i>=0;i-- ){ System.out.println(arr[i]);} System.out.println("----------------------------");System.out.println(arr[0]); System.out.println("---数组进行了反转------------");//做数组反转,就是元素对调 有一个最远端调换的思想for(int min=0,max=arr.length-1; max>min; min++,max--){ //定义一个第三方变量 //把索引最小的元素的值赋值给第三方变量 int temp = arr[min]; //将索引最大的元素的值赋值给索引最小元素 arr[min]=arr[max]; //再将第三方变量里的值赋值给索引最大元素 arr[max]=temp; //现在就完成了最远端元素调换} System.out.println(arr[0]); System.out.println("---数组反转之后正序遍历之后结果------------"); for(int i = 0;i<=arr.length-1;i++){ System.out.println(arr[i]);}//做完数组反转之后 数组的样子是 int[] arr = {7,5,2,6,3}; }}F.数组查表法
数组查表法(根据键盘录入索引,查找对应星期)
要求是这样的 0 显示星期日 1 显示星期一
数组是存储同一种数据类型多个元素的集合。熟练掌握数组的使用是每个程序员都必须要会的.
要求是这样的 0 显示星期日 1 显示星期一
import java.util.Scanner;class ArrayTest4{public static void main(String[] args) {Scanner sc = new Scanner(System.in);//用静态初始化定义一个字符串数组String[] arr = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; System.out.println("请输入索引,我会给出对应的星期,注意范围0~6:否则报异常不要找我!"); //接收录入索引 int index = sc.nextInt(); System.out.println(arr[index]);}}总结一下:
数组是存储同一种数据类型多个元素的集合。熟练掌握数组的使用是每个程序员都必须要会的.
0 0
- 【Java基础】Java数组
- java基础 ---数组
- java中数组基础
- java基础----数组
- Java基础:数组
- Java基础之数组
- Java基础之数组
- Java基础_数组
- JAVA基础:一元数组
- Java基础之数组
- Java基础<四>---> 数组
- Java基础_数组
- java数组基础
- Java基础_数组
- java基础__数组
- 【java基础】[数组]
- Java基础-数组
- Java基础:数组
- A*算法————传教士和野人
- UIImagePickerController获取照片的实现,添加overlay方法
- Quaternion.LookRotation 注视旋转
- CString分割字符串和截取字符串的成员函数
- GDB技巧整理
- Java基础--------------------------数组--------------------------
- web服务器
- Android网络开发框架Retrofit(三:进阶篇,接口实体类封装)
- 创新工场涂鸦移动测试题-软件工程师
- Android程序设计基础
- (java)Compare Version Numbers
- iOS 创建单例的两种方法
- Linux下管理员权限获取(su和sudo的区别)
- 2015创新工场涂鸦移动测试题-软件工程师