Java基础篇--数组的三种声明方式总结、多维数组的遍历、Arrays类的常用方法总结-

数组的三种声明方式总结、多维数组的遍历、Arrays类的常用方法总结

数组的概念
数组是一种数据结构,在java中可以理解为一种特殊的数据类型,他表示由同一类型数组成的大小固定的有序集合。数组的长度在创建数组时指定,每个元素都有下标,可以通过下标来访问数组的元素。
数组的初始化
数组的初始化也和变量的初始化类似,数组有三种初始化方式,前两种是在声明地同时进行初始化,第三种是声明之后再初始化。数组的长度是不可变得,在初始化时已经确定。

方式一:
数组元素类型[] 数组名 = [元素1,元素2,元素3…];

char[] arr1 = {‘a’,’b’,’’c};
int[] arr2={1,2,3};
String[] arr3={“this”,”is”,”a”,”test”};

方式二:
数组元素类型[] 数组名 = new 数组元素类型{元素1,元素2,元素3…};

char [] arr = new char[]{‘a’,’b’,’c’,’d’};

数组声明的同时数组的大小就会确定,而方式一和方式二的共同点是在声明的同时赋初值。虽然数组的元素可以通过数组改变,但数组元素的类型和数组的大小一旦声明,就是不变的。

方式三:
数组元素类型[] 数组名 = new 数组元素类型[数组元素个数];数组名[0] = 元素1;数组名[1] = 元素2;…

int[] arr = new int[5];
arr[0] = 1;
arr[1] = 2;
。。。

多维数组的声明与初始化和一维数组是相同的,每加一个维度则加一个[]。多维数组其实是“数组的数组”,二维数组其实是一维数组的每个元素都是一个一维数组,三维数组是二维数组的每个元素都是一个一维数组,以此类推。

数组常见操作

( 遍历)依此访问数组中每个元素的操作叫做数组的遍历,数组的遍历是数组最常见的操作。
例一:一维数组

package java_study; 
public class ArrayTest1 {
 	public static void main(String[] args) {
 			int arr[]=new int[10];
 			for(int i=0;i<arr.length;i++) {		
 				arr[i]=2*i+1;	
 					}
 			for(int i=0;i<arr.length;i++) {		
 				System.out.print(arr[i]+" ");	
 					} 	
 			} 
 		}

运行结果:1 3 5 7 9 11 13 15 17 19

例二:二维数组

package java_study;
 public class ArrayTest2 { 
 	public static void main(String[] args) {	
 		String[][] test = {{"1","2","3"},{"a","b","c"}};		
 		for(int i=0;i<2;i++) {		
 			for(int j=0;j<3;j++)		
 				{			
 					System.out.print(test[i][j]+" ");		
 				}		
 		System.out.println();
 		} 	
 	} 
 }

运行结果如下:
1 2 3
a b c

再介绍几个常用的arrays的方法

1、aslist()
Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁。

List<String> list = Arrays.asList("a","b","c");

这个看似功能很明了的方法却暗藏玄机,下一篇微博介绍:
1、https://blog.csdn.net/qq_41288095/article/details/88928983

2、https://blog.csdn.net/qq_41288095/article/details/88929027
2、copyOf()
Arrays.copyOf功能是实现数组的复制,返回复制后的数组。参数是被复制的数组和复制的长度:

package java_study;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator; 
import java.util.Set;

public class SetTest1 {
	public static void main(String[] args) {
	         String[] arr=new String[5];
	         String[] strs1={"123","234","345","456","789"};
	         //String[] strs2=new String[2];//Two ways to state a array
	         String[] str2=Arrays.copyOf(strs1, 3);
	         String[] str3=Arrays.copyOf(strs1, 8);
	         System.out.println();
	         for(String ele:str2){
	         	System.out.print(ele+";");
	         	}
	         System.out.println();
	         for(String ele:str3){         	
	         	System.out.print(ele+";");      
	            }
	            
                int[] in={1,2,3,4,5};
	        int[] int1=Arrays.copyOf(in,3);
                int[] int2=Arrays.copyOf(in,8);
               System.out.println();
		   for(int ele:int1){
      			System.out.print(ele+";");
      		   }
      	    System.out.println();
		  for(int ele:int2){
			  System.out.print(ele+";");
    		     }   	   	  
   } 
       }

运行结果是
123;234;345;
123;234;345;456;
789;null;null;null;
1;2;3;
1;2;3;4;5;0;0;0;

说明:复制的长度大于被复制数组的长度,则填充类型默认值,String得默认值是null,int的默认值是0。

3、sort()升序排序,直接使用Arrays.Sort方法

 package java_study; 
 import java.util.Arrays; 

 public class ArraySort {  	
	public static void main(String arg[]){		
	    int[] arr = {1,4,6,10,8,2};		
	       Arrays.sort(arr);//使用java.util.Arrays对象的sort方法	
    for(int i=0;i<arr.length;i++){		      
      System.out.print(arr[i]+" ");	
      	    }	
    }
}

运行结果
1 2 4 6 8 10

4、toString()
数组使用toString方法打印数组,省略for循环。

 	package java_study;
 	 import java.util.Arrays;
 	public class ArraySort {  	
 		public static void main(String arg[]){	
 		 	   int[] arr = {1,4,6,10,8,2};		  
 		 	     Arrays.sort(arr);//使用java.util.Arrays对象的sort方法		 
 			   System.out.println(Arrays.toString(arr));		
 		   }	
 	   }

输出结果为:[1, 2, 4, 6, 8, 10]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值