数组的使用

1.数组的基本概念

    数组:就是一组相关变量的集合

     声明并开辟数组:数据类型 [] 数组名称 =new 数据类型[长度]------推荐使用这种

                                    数组类型   数组名称[] =new 数据类型[长度]

     使用:数组名称[索引]  索引从0开始,开辟数组后里面的值是相应数据类型的默认值;

     取得数组的长度:数组名.length

     数组静态初始化:

        数据类型[] 数组名称=new 数据类型[]{值,值,值....};

 

    注:数组对数组中的值只是管理者,并不是拥有者,所以:

 

           当发生引用传递时:数组里的值改变就就都改变了

例:

public class Test{
         public static void main(String[] args){
                 int[] data=new int[3];
                 data[0]=1;
                 data[1]=2;
                 data[2]=3;
                 int temp[] =data; //引用传递
                 temp[0]=10;//改变数值
                for(int x=0;x<data.length;x++){
                      System.out.print(data[x]+",");//data里的数值也发生了改变
                  }
                for(int x=0;x<temp.length;x++){
                      System.out.print(temp[x]+",");
                   }
           }
}

 

2.数组类型的相互转化

2.1字符串数组变为int 数组

 

package work;
public class Test{
	public static void main(String args[]) {
		String s="1,2,3,11,20,100";
		String[] str = s.split(",");
		int[] data = new int[str.length];
		for(int i=0;i<str.length;i++){
		data[i]=Integer.parseInt(str[i]);
		}
		System.out.println(data[2]);
	} 
}

 

3.数组常用方法:

3.1 数组排序:

 

package work;
//排序方法:冒泡方法
public class TestDemo2 {
	public static void main(String[] args) {
		int[] data=new int[] {3,5,8,6,10,4,2};
		sort(data);
		print(data);
	}
        //数组排序
       public static void sort(int temp[]) {
		for(int x=0;x<temp.length;x++) {
			for(int y=0;y<temp.length-1;y++) {
				if(temp[y]>temp[y+1]) {
					int i=temp[y+1];
					temp[y+1]=temp[y];
					temp[y]=i;
				}
			}
		}
	}
        //数组显示出来
        public static void print(int temp[]) {
		for(int x=0;x<temp.length;x++) {
			System.out.println(temp[x]);
		}
	}
}


3.2 判断一个数据是否在指定的数组中

 

 

//判断某一个数据是否在指定的数组中
public class TestDemo {
	public static void main(String args[]) {
	int[] data=new int[]{2,5,7,6,9};
	int a=4;
	System.out.println(isExists(data,a));
	}
	public static boolean isExists(int temp[],int s) {
		for(int x=0;x<temp.length;x++) {
			if(temp[x]==s) {
			return true;	
			}
		}
		return false;
	}
}

3.3数组的拷贝

 

 

public class ArrayDemo1 {
	public static void main(String args[]) {
		//数组拷贝
		//方法:System.arraycopy(源数组名称,原数组开始点,目标数组名称,目标数组开始点,拷贝长度)
		int[] dataA=new int[] {1,2,3,4,5,6,7,8,9};
		int[] dataB=new int[] {11,22,33,44,55,66,77,88,99};
		System.arraycopy(dataB, 3, dataA, 3, 4);
		for(int x=0;x<dataA.length;x++) {
			System.out.print(dataA[x]+",");
		}
	}		
}

3.4数组的合并

public class ArrayDemo2 {
	public static void main(String args[]) {
		//两个数组合并
		int[] dataA=new int[] {1,2,3,4,5,6,7,8,9};
		int[] dataB=new int[] {11,22,33,44,55,66,77,88,99};
		int c=dataA.length+dataB.length;
		int[] dataC=new int[c];
		//现将dataA的数全部复制到dataC中;
		System.arraycopy(dataA, 0, dataC, 0, dataA.length);
		//然后将dataB的数全部复制到dataC中;
		System.arraycopy(dataB, 0, dataC, dataA.length, dataB.length);
        for(int x=0;x<c;x++) {
			System.out.print(dataC[x]+",");
		}
	}		
}

3.5将数组中的某些数据删除,形成新的数组

 

 

public class Exer23 {
	public static void main(String[] args) {
	int oldArr[]= {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
	int count=0;
	String str="";
	for(int x=0;x<oldArr.length;x++) {		
		if(oldArr[x]==0) {
			count++;		
		}else {
		str=str+oldArr[x];
		}
	}
	System.out.println(str);
	int a=oldArr.length-count;
	char newArr[]= new char[a];
	int newArrs[]=new int[a];
	for(int x=0;x<a;x++) {
		newArr[x]=str.charAt(x);
	}
	for(int x=0;x<a;x++) {
		newArrs[x]=(int)(newArr[x]-'0');
		System.out.print(newArrs[x]+",");
	}
	
	}
}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值