JAVA初窥-DAY06

数组的创建与使用

数组就是一种数据结构,它是一块连续的内存,存储的是一种相同类型的数据的集合,这种数据结构就等于数据加结构,就是组织和描述数据的方式

public static void main(String[] args){
	int[] array1 ={1,2,3,4,5};//定义且初始化了一个整型数组
	double[] array2 = {1.1,2.3,3.4,5.6,7.8};//定义且初始化了一个浮点类型的数组
	string[] array3 = {"asd","asdasd","zxczxc","qwerttt"};//定义且初始化了一个字符串类型的数组
	int[] array4 = new int[5];//定义一个整型数组,5为它有多少元素。
	int[] array5 = new int[]{1,2,3,4,5,6,8,9};//定义且初始化了一个整型数组
	System.out.println(array1);//此处输出array1数组的地址
	System.out.println(array1[1]);//此时输出array1数组的第二个元素,[]里的范围为[0,array.length)
	System.out.println(array1.length);//此时输出数组array1的长度。
	array2 = null;//null -> 啥也没有
	System.out.println(array2);//此时输出null
	System.out.println(array2.length);//此时输出错误,空指针异常
}

数组的输出:

int[] array1 = {1,2,3,4,5};
for(int i=1;i<array1.length;i++){
	System.out.print(array1[i]+ " ");
}
String ret =Arrays.toString(array1);//接收数组的每一项赋值给string类型的ret
	// Arrays.   这个叫做操作数组的工具类
	System.out.print(ret);
	System.out.print(Arrays.toString(array1));//直接打印
	int[] array2 = new int[5];
	System.out.print(Arrays.toString(array2));//此时输出0 0 0 0 0 表示数组的默认值为0

数组的赋值:

int[] array = new int[5];
for(int i=1;i<array.length;i++){
	array[i] = i*2;
	System.out.print(array[i]+ " ");
}

因为数组中存储的是数组在堆中内存的地址,所以不论方法中有无返回值,方法中修改数组的元素后,主函数中数组的元素也会被修改。

public static void main(String[] args){
	int[] array={1,2,3,4,5};
	func(array);
	for(i=0;i<array.length;i++){
		System.out.print(array[i]);
	}
}
public static void func(int[] array){
	for(int i=0;i<array.length;i++){
		array[i] = i*2;
	}
}

foreach语句

for( 数组中每个元素的数据类型:数组名){
}

for(int x:array){
	System.out.print(x+ " ");//此处表示数组中每个元素的输出
}

可变参数编程

可接收多个参数的参数类型的编程。

public static void main(String[] args){
	int ret1 = sum(1,2,3,4,5,6,7);//调用sum方法并传参1 2 3 4 5 6 7,并用ret来进行接收
	System.out.println("第一组数的和为: "+ret1);
	int[] array = {1,2,3,4,5,6,7};
	int ret2 = sum(array);
	System.out.println("第二组数的和为: "+ret2);
	int ret3 = sum(new int[]{1,2,3,4,5,6,7});
	System.out.println("第三组数的和为: "+ret3);
}
public static int sum(int... tmp){
	//这里 int...tmp表示tmp可以接收多个变量,调用方法时可传多个参数
	int sum = 0 ;
	for(int a:tmp){
		sum = sum+a;
	}
	return sum;
}

数组中元素的交换

如,把一个数组中的奇数放在偶数前:

public static void main(String[] args) {
    int[] array= new int[]{1,2,3,4,5,6};
    System.out.println(Arrays.toString(changeOrder(array)));
}
public static int[] changeOrder(int[] array){
    int i=0;
    for (;i<array.length;i++)
        if (array[i]%2 == 0){
            int j = changeOrder2(array,i);
            if (j <= i){
                //若返回的 j值等于或小于i,则 结束
                return array;
            }else {
                //若返回的 j值大于i ,则调换 array数组中第i 第j  继续循环
                int tmp = array[i];
                array[i] = array[j];
                array[j] = tmp;
            }
            }
    return array;
}
public static int changeOrder2(int[] array,int i){
    int j= array.length-1;
    for (;j>=i;j--) {
        if (array[j]%2 == 1){
            return j;
        }
    }
    return j;
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值