对java中数组的个人理解

明确概念:

既然说到了数组,首先,我们先明确一下数组的概念:相同数据类型的元素按一定顺序排列的集合。
                                                                                      Java中,数组元素可以为简单数据类型,也可以为对象。
那么,既然是相同数据类型的元素的排列,那么他们在内存中的存放也是按照这个先后顺序的。

 

定义方式:
java中数组一般是要先声明,后创建空间,然后再创建数组元素并赋值。
其定义的方式有四种:


 数据类型[ ] 数组名;             //声明一维数组
 数组名=new 数据类型[个数];//动态分配内存给数组
 
 数据类型[ ] 数组名= new 数据类型[个数];
 
 数据类型[ ] 数组名= new 数据类型[个数]{"赋初值"};
 
 数据类型[ ] 数组名;             //声明一维数组
 数组名=new 数据类型[个数]{"赋初值"};//动态分配内存给数组
 
数组的方法:
 数组里面只有一个唯一的方法,就是length

两个练习:

1.一维数组的各种排序方法

package 数组;

import java.util.Random;

public class Kindsort {

	/**
	 * 各种排序方法
	 */
	public static void main(String[] args) {
		
		Kindsort sort = new Kindsort();
		
		//在这里使用下面的方法即可
		sort.quick();
		System.out.println("===========================================");
		sort.shellsort();
		System.out.println("===========================================");
		sort.insort();
		System.out.println("===========================================");
		sort.selectsort();
		
	}
	
	//人工快速排序
	private void quick() {
		int[] array = new int[5];
		
		for(int i=0;i<5;i++){
			Random rand = new Random();
			array[i]=rand.nextInt(500);
		}
		
		for(int i=0;i<5;i++){
			for(int j=0;j<5;j++){
				int temp =array[i];
				if(temp <= array[j]){
					array[i] = array[j];
					array[j] = temp;
				}else{
					continue;
				}
			}
		}
		for(int i=0;i<5;i++){
			System.out.println(array[i]);
		}
	}

	//希尔排序
	private void shellsort() {

		int[] array = new int[5];
		
		for(int i=0;i<5;i++){
			Random rand = new Random();
			array[i]=rand.nextInt(500);
		}
		
		for (int in = array.length / 2; in > 0; in /= 2) {
			for (int i = in; i < array.length; i++) {
				int t = array[i];
				int j = 0;
				for (j = i; j >= in; j = j - in) {
					if (t < array[j - in]) {
						array[j] = array[j - in];
					} else {
						break;
					}
				}
				array[j] = t;
			}
		}
		for (int i = 0; i < array.length; i++)
			System.out.println(array[i] + "\t");
	}

	//插入排序
	private void insort() {
		int[] array = new int[5];
		
		for(int i=0;i<5;i++){
			Random rand = new Random();
			array[i]=rand.nextInt(500);
		}
		
		for (int i = 1; i < array.length; i++) {
			for (int j = i; j > 0; j--) {
				if (array[j] < array[j - 1]) {
					int t = array[j];
					array[j] = array[j - 1];
					array[j - 1] = t;
				}
			}
		}
		for (int i = 0; i < array.length; i++)
			System.out.println(array[i] + "\t");
	}

	//选择排序
	private void selectsort() {
		int[] array = new int[5];
		
		for(int i=0;i<5;i++){
			Random rand = new Random();
			array[i]=rand.nextInt(500);
		}
		
		for (int i = 0; i < array.length; i++) {
			int min = i;
			for (int j = i + 1; j < array.length; j++) {
				if (array[min] > array[j])
					min = j;
			}
			int t = array[i];
			array[i] = array[min];
			array[min] = t;
		}
		for (int i = 0; i < array.length; i++)
			System.out.println(array[i] + "\t");
	}
	
	
}

 

2.找出二维数组的最大值

package 数组;

import java.util.Random;

//算二维数组的最大值

	public class Findsort{
		public static void main(String args[]){
			int a[][]=new int[2][5];
			Random rand=new Random(); 
			for(int i=0;i<2;i++){
				for(int j=0;j<5;j++){
					a[i][j]=rand.nextInt(30);
					System.out.println("a["+i+"]["+j+"]="+a[i][j]);
				}
			}
			int max;
			Findsort p=new Findsort();
			max=p.maxv(a);
			System.out.println("max="+max);
		}
 
		public int maxv(int arr1[][]){
			int i,j,max;
			max=arr1[0][0];
			for(i=0;i<arr1.length;i++)
				for(j=0;j<arr1[i].length;j++)
					if(arr1[i][j]>max)
						max=arr1[i][j];
			return max;
		}
	}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值