java入门基础-数组

一维数组

定义
要使用java语言的数组,一般经过三个步骤:声明数组,创建空间,建数组元素并赋值。

int[] x;    //声明数组
x = new int[10];    //创建空间
//合并写法
int[] x=new int[10];

初始化

//静态初始化:创建+赋值
int[] a = {1,2,3,4,5}; 
int[0] a =1;	
//动态初始化:包含默认初始化,数组也是引用类型,其元素相当于类的实例变量,因此数组一经分配空间,其中每个元素也按照实例变量同样的方式被隐式初始化。
int[] b = new int[10];
b[0] = 10; //b[0] = 10,此时没有被初始化的b[1]...b[9]都将默认赋值为0

利用循环对数组元素进行赋值

int i;
int[] a; //声明数组
a=new int[5];  //分配空间
for(i=1;i<5;i++){  //循环对数组元素进行赋值
	a[i] = i;
}
for(i=0;i<a.length;i++){  //循环输出数组
	System.out.print("a["+i+"]="+a[i]+"\t");
}

//输出结果
//a[0]=0 a[1]=1	a[2]=2 a[3]=3 a[4]=4	

计算数组元素的和

int sum = 0;
int[] a = {1,2,3,4,5,6};
for(int i=0;i<a.length;i++){
	sum =sum + a[i];
}
System.out.println(sum);

求数组元素最大值

int[] arrays = {1,2,3,4,5};
		int max = arrays[0];
		for(int i=0;i<arrays.length;i++){
		  if(arrays[i]>max){
		  		max =arrays[i]; 
		  }
		}
System.out.println(max);

反转数组:使用自定义的 reverse 方法将数组进行反转

	static void reverse(int a[],int n){
		int[] b = new int[n];
		int j = n;
		for(int i=0;i<n;i++){
			b[j-1]=a[i];
			j=j-1;
		}
		for(int k=0;k<n;k++){
			System.out.println(b[k]);
		}
	}
	public static void main(String[] args) {
		int[] arr = {1,2,3,4,5};
		reverse(arr,arr.length); 
	}

从键盘输入数组元素

import java.util.*;
public class Main {
	public static void main(String[] args) {
		int i;
		int[] a; //声明数组
		Scanner reader = new Scanner(System.in);
		int n = reader.nextInt(); //输入一个数,代表数组容量
		a=new int[n];  //分配空间
		for(i=1;i<n;i++){  //循环对数组元素进行赋值
			int x = reader.nextInt();
			a[i] = x;
			}
		for(i=0;i<a.length;i++){  //循环输出数组
			System.out.print("a["+i+"]="+a[i]+"\t");
		}
	}
}	

/*输入数据:
6
1 4 5 6 7 7
输出结果:
a[0]=0	a[1]=1	a[2]=4	a[3]=5	a[4]=6	a[5]=7	

二维数组

声明方式

int[][] a;  //声明整型数组a
a = new int[3][4];  //分配一块内存空间,供3行4列的整型数组a使用

//合并写法
int[][] a = new int[3][4];

初始赋值

int[][] a = {
	{1,2,3,4,5,6},
	{6,5,4,3,2,1},
	{1,3,5,2,4,6}
};
Arrays类

数组的工具类java.util.Arrays
由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用”而不是"不能"")
具有以下常用功能:
**给数组赋值:**通过fill方法。
**对数组排序:**通过sort方法,按升序。
**比较数组:**通过equals方法比较数组中元素值是否相等。
**查找数组元素:**通过binarySearch方法能对排序好的数组进行二分查找法操作。

import java.util.Arrays;
	int[] a = {1,3,4,5,2};
	//Arrays.toString(a)打印数组元素
	Arrays.sort(a);//排序
	System.out.println(Arrays.toString(a));	//[1, 2, 3, 4, 5]
	Arrays.fill(a,2,4,0);//在第二个和第四个元素之间使用0来填充(左闭右开)
	System.out.println(Arrays.toString(a));	//[1, 2, 0, 0, 5]
冒泡排序
public static void main(String[] args) {
		int[] array = {1,4,6,3,2,6,3,2,3};
		int[] sort = sort(array);
		System.out.println(Arrays.toString(sort));
	}
	public static int[] sort(int[] array){
	//临时变量
	int temp = 0;
		for(int i=0;i<array.length-1;i++){
			boolean flag = false; //减少无意义的比较,降低复杂度
			for(int j=0;j<array.length-1-i;j++){
				if(array[j]>array[j+1]){
					temp=array[j];
					array[j]=array[j+1];
					array[j+1]=temp;
					flag = true;
				}
			}
			if(flag==false){
				break;
			}
		}
		return array;
	}	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值