赞
踩
可以存放多个同一类型的数据,数组也是一种数据类型,是引用类型
数据类型[] 数组名 = {...};
可以通过数组名.length得到数组的长度
数据类型 数组名[] = new 数据类型[大小]
通过数组名[下标/索引/index]进行访问如a[2],从0开始
也可以先声明int arr[];
arr = new int
静态初始化 int a[]={...}相当于第一种使用方法
基本数据类型是拷贝赋值
而数组在默认情况下是引用传递,赋的值是地址
新创建一个数组new会新开辟一个空间
1.交换
2.逆序赋值法
看图思路分析
根据用户的输入进行扩容
-
- public class bubblesort{
- public static void main(String[] args){
- int[] arr = {3,6,8,5,3,1,9,8,56};
- boolean a;
- for(int i = 0;i < arr.length - 1;i++)//排n-1个数即可,最后的数一定在顺序上
- {
- a = false;
- for(int j = 0;j < arr.length - 1 - i;j++){//比较时减去已经排序好的数,倒数第二个数会与最后一个比较,故减一
- if(arr[j] > arr[j+1]){//从小到大排序
- int temp = arr[j];//交换
- arr[j] = arr[j+1];
- arr[j+1] = temp;
- a = true;
- }
- }
- if(!a){//如果a非为真说明没有发生交换已经完成排序,退出程序
- break;
- }
- }
- for(int i = 0;i < arr.length;i++){
- System.out.print(arr[i] + "\t");
- }
- }
- }

- import java.util.Scanner;
- public class SeqSearch{
- public static void main(String[] args){
- //编写一个main方法
- String[] name = {"红楼梦","水浒传","三国演义","西游记"};
- Scanner myScanner = new Scanner(System.in);
- System.out.println("请输入名字:");
- String findname = myScanner.next();
- //遍历数组
- int index = -1;//用于检测是否找到
- for(int i = 0 ;i < name.length;i++){
- //比较 字符串比较方法equals
- if(findname.equals(name[i])){
- System.out.println("恭喜你找到" + findname);
- System.out.println("下表为:" + i);
- index = i;//找到了就会改变index
- break;
- }
- }
- if(index == -1){
- System.out.println("sorry!没找到");
- }
- }
- }

后续
- import java.util.Scanner;
- public class TwoDimensionalArray{
- public static void main(String[] args){
- //编写一个main方法
- //二维数组
- //定义上int[][]
- //理解:原来的一维数组的每个元素是一维数组
- int[][] arr = {{0,0,0,1,1,1,0},
- {0,3,5,6,1,5,7,3},
- {2,0,4,1,0,3,1,2},
- {1,0,3,4,5,6,8}};
- //访问arr[i][j],注意从0开始编号
- //输出二维数组
- System.out.println("二维数组的个数=" + arr.length);//换行
- System.out.println("第三个一维数组的第四个值为" + arr[2][3]);//换行
- //输出二维图形
- for(int i = 0;i < arr.length;i++){
- //遍历二维数组的每个元素
- //arr[i].length得到对应的每一个一维数组
- for(int j = 0;j < arr[i].length;j++){
- System.out.print(arr[i][j]+"\t");
- }
- System.out.println();//换行
- }
- }
- }

1.语法:类型[][] 数组名 = new 类型[大小][大小]
也可int arr[][];//先声明
arr = new int[2][3];//在创建
2.二维数组在内存的存在形式***
3.定义一个二维数组为{{1},{2,2},{3,3,3}}
- public class TwoDimensionalArray
- {
- public static void main(String[] args)
- {
- //编写一个main方法
- int[][] arr = new int[3][];//
- for(int i = 0;i < arr.length;i++){
- //给每一个一维数组开空间
- //如果不开,那么arr[i]是null
- arr[i] = new int[i + 1];//第i+1个一维数组的大小为i+1
- //遍历每个一维数组并赋值
- for(int j = 0;j < arr[i].length;j++){
- arr[i][j] = i + 1;
- }
- }
- for(int i = 0;i < arr.length;i++)
- {
- //遍历二维数组的每个元素
- for(int j = 0;j < arr[i].length;j++)
- {
- System.out.print(arr[i][j]+"\t");//输出1 2 2 3 3 3
- }
- }
- }
- }

4.静态初始化
如:int[][] arr = {{1,1,1},{8,9,8},{100}};
- public class YangHui{
- public static void main(String[] args){
- /*打印杨辉三角7行
- 1
- 11
- 121
- 1331
- 14641
- ...找规律,2=1+1,3=1+2,2=2+1,4=1+4,6=3+3,...体现在数组中即arr[i][j]=arr[i-1][j-1]+arr[i-1]arr[j]
- */
- int[][] yanghui = new int[7][];
- for(int i = 0;i < yanghui.length;i++){
- //需要给每一维数组开辟空间
- yanghui[i] = new int[i + 1];
- //给每一行赋值
- for(int j = 0;j < yanghui[i].length;j++){
- if(j == 0 || j == yanghui[i].length - 1){
- yanghui[i][j] = 1;
- } else {
- yanghui[i][j] = yanghui[i-1][j] + yanghui[i-1][j-1];
- }
- }
- }//输出
- for(int i = 0;i < yanghui.length;i++){
- for(int j = 0;j < yanghui[i].length;j++){
- System.out.print(yanghui[i][j] + "\t");
- }
- System.out.println();//换行
- }
- }
- }

一维数组可以 int[] x or int x[]
二维数组int[][] y or int[] y[] 或者int y[][]
二维数组实际上是由多个一维数组组成的,他的各个一维数组长度可相同可不同
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。