Rookie零基础学java(八)之 数组及简单的排序用法

Rookie零基础学java博客目录(不断更新)

在日常生活中,盒子的作用是存放东西,但是是不可能把衣服和食品放在一起的,会有专门放衣服的盒子,也会有专门放食品的盒子。在Java中,数组就好比日常生活中的盒子,用来存储数据。每一个数组也是有类型的,用来放相应类型的数据。数组是一种存储数据的数据结构。

1.创建数组:

数组就是一组数的集合,而且这些数的类型必须是相同的。假设现在有100个苹果,如果分散存放会很不好管理,如果集中存放的话,大家会想到放在一个盒子里。在Java里也是这样,如果100个苹果每一个都放在一个变量里,会显得代码很凌乱,如果用数组存放会显得代码很整洁。所以说数组是一种存放数据的数据结构。

 

例1:创建不同类型的数组,并输出第一个元素的默认值。
public class Test01
{
	public static void main(String args[])
	{
		// Define a multidimensional array
	//	int i[][] = new int [4][4];
		//For array subscript for ten elements assignment
	//	int i[1][5] = 10;
		//Create a boolean types of arrays, length is 2
		boolean bo[] = new boolean[2];
		//Create a byte types of arrays, length is 2
		byte b[] = new byte[2];
		//Create a char types of arrays, length is 2
		char c[] = new char[2];
		//Create a short types of arrays, length is 3
		short s[] = new short[2];
		//Create a int types of arrays, length is 2
		int i[] = new int [2];
		//Create a long types of arrays, length is 2
		long l[] = new long[2];
		//Create a float types of arrays, length is 2
		float f[] = new float[2];
		//Create a double types of arrays, length is 2
		double d[] = new double [2];

		System.out.println(bo[0]);
		System.out.println(b[0]);
		System.out.println(c[0]);
		System.out.println(s[0]);
		System.out.println(i[0]);
		System.out.println(l[0]);
		System.out.println(f[0]);
		System.out.println(d[0]);
	}
}


 运行结果:

[haoyue@centos exercise03]$ java Test01
false
0

0
0
0
0.0
0.0

例2:

public class Test02
{
	public static  void main (String args[])
	{
		Boolean bo[] = new Boolean[2];
		Byte b[] = new Byte[2];
		System.out.println(bo[0]);
		System.out.println(b[0]);
	}
}


 

运行结果:

null null

2.数组的循环初始化:

数组除了可以在创建的同时进行初始化,也能在运行期间对数组各个元素进行赋值。对数组的循环赋值通常使用for循环来完成,将数组中的每一个元素进行初始化。

 例1:

public class Test03
{
	public static void main (String args[])
	{
		int a[] = new int[10];
		for (int i = 0; i < a.length; i++)
		{
			a[i] = i + 1;
			System.out.println("Each element of the array value:" + a[i]);
		}
	}
}


运行结果:

[haoyue@centos exercise03]$ java Test03
Each element of the array value:1
Each element of the array value:2
Each element of the array value:3
Each element of the array value:4
Each element of the array value:5
Each element of the array value:6
Each element of the array value:7
Each element of the array value:8
Each element of the array value:9
Each element of the array value:10

数组里各个元素的值可以用数组的引用和使用循环对其赋值,但要注意两个不同长度的数组进行复制的时候下标越界的问题,要对数组的下标进行判断。

 

例2:

public class Test04
{
	public static void main (String args[])
	{
		int a[] = new int[10];
		int b[] = new int[a.length];

		for (int i = 0; i < a.length; i++)
		{
			a[i] = i + 1;
			System.out.print(a[i] + " ");
		}
		System.out.println("");
		System.out.println("Each element of the array value:");

		for (int j = 0; j < b.length; j++)
		{
			b[j] = a[j];
			System.out.print(b[j] + " ");
		}
		System.out.println("");
	}
}


运行结果:


[haoyue@centos exercise03]$ java Test04
1 2 3 4 5 6 7 8 9 10
Each element of the array value:
1 2 3 4 5 6 7 8 9 10

3.数组元素的排序:

数组元素的排序在数组的操作中是很常见的。Java中提供了一个java.util.Arrays类作为数组的辅助功能类,其中提供了排序、数组转换等操作。数组的排序主要分为冒泡排序法和使用sort方法进行排序。下面分别介绍两种数组元素的排序方法。

例1:冒泡排序

public class BubbleSort
{
	public static void main (String args[])
	{
		int a[] = {1,3,4,2,5,7,8};
		for (int i = 0; i< a.length; i++)
		{
			for(int j = i + 1; j < a.length; j++)
			{
				if (a[j] < a[i])
				{
					int tem = a[i];
					a[i] = a[j];
					a[j] = tem;
				}
			}
		}
		for (int i = 0; i < a.length; i++)
		{
			System.out.println(a[i]);
		}
	}
}


运行结果:

1,2,3 4,5,6,7,8 

  例2:

import java.util.Arrays;
public class Sort
{
	public static void main (String args[])
	{
		int a[] = {1,3,4,2,5,7,8};
		Arrays.sort(a);
		System.out.println("After array sort: ");
		printa(a);
	}
	private static void printa(int[] a)
	{
		for (int i = 0; i < a.length; i++)
		{
			System.out.println("a["+i+"]"+a[i]+" ");
		}
	}
}


运行结果:

[haoyue@centos exercise03]$ java Sort
After array sort:
a[0]1
a[1]2
a[2]3
a[3]4
a[4]5
a[5]7
a[6]8

4.在数组里查找指定元素:

在数组中查找一个指定的元素,需要将数组中的所有元素依次和指定的元素作对比,如果匹配则打印出来。

 例1:

public class Test06
{
	public static void main (String args[])
	{
		int a[] = {12,3,45,23,46,1};
		int n = 45;
		for (int i = 0; i < a.length; i++)
		{
			if (a[i] == n)
			{
				System.out.println("To locate the position of the element"+(i+1)+"");
			}
		}
	}
}


运行结果:

To locate the position of the element3

例2:大印6个字母

public class Test07
{
	public static void main(String args[])
	{
		char a[] = new char[26];

		for (int i = 0; i < 26; i++)
		{
			a[i] = (char)('A' + 1);
			System.out.print(a[i]);
			if (a[i] == 'Z')
			{
				System.out.println("");
			}
		}
	}
}


运行结果:

ABCDEFGHIJKLMNOPQRSTUVWXYZ 

你可能感兴趣的:(Rookie零基础学java(八)之 数组及简单的排序用法)