0
点赞
收藏
分享

微信扫一扫

java数组

sullay 2022-01-04 阅读 63

1.概念

数组是用来存储固定数量的同类型元素的一种数据结构,它是引用类型。数组有顺序,下表从0开始

2.创建数组

        int[] a1 = new int[5];// 定义数组长度

		int[] a2 = { 1, 2, 3 };// 定义元素

		int[] a3 = { 1, 2, 3, };// jdk1.8适用

3.求数组长度

 System.out.println(a3.length);

        数组获取长度length变量

        字符串获取长度length()方法

集合获取长度size()

4.访问数组元素

System.out.println(a2[1]);

5.遍历数组

(1).for循环遍历数组

for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

(2).foreach循环遍历数组

for (int i : arr) {
	System.out.println(i);
}

6.Arrays工具类-java.util.Arrays

        // 7-1打印数组
		System.out.println(Arrays.toString(a2));

		// 7-2数组赋值
		Arrays.fill(a1, 1);
		System.out.println(Arrays.toString(a1));
		fill(arr,startIndex,endIndex,val)
		//从startIndex开始,到endIndex结束,但不包括endIndex
		Arrays.fill(a1, 1, 3, 2);
		//System.out.println(Arrays.toString(a1));

		// 7-3自然排序
		int[] a5 = { 3, 4, 8, 9, 2 };
		Arrays.sort(a5);
		System.out.println(Arrays.toString(a5));

		// 7-4二分查找 返回被查找的数在数组中的下标--前提先对数组进行自然排序
		int res = Arrays.binarySearch(a5, 8);
		System.out.println(res);
		
		//7-5数组扩容
		int[] a7=Arrays.copyOf(a2,5);//int型数据
		System.out.println(a7.length);
		System.out.println(Arrays.toString(a7));

		
		String[] a6={"d","a","b","e","f"};//String型数据
		String[] a8=Arrays.copyOf(a6, 10);
		System.out.println(Arrays.toString(a8));

7.多维数组

        //创建二位数组
        int[][] b1 = new int[2][2];
		int[][] b2 = { { 1, 2 }, { 3, 4 }, { 5, 6 } };

        //遍历二维数组
        for (int i = 0; i < arr2.length; i++) {
            for (int j = 0; j < arr2[i].length; j++) {
		        System.out.print(arr2[i][j] + ",");
	        }
            System.out.println();
        }

8.排序法

(1).冒泡排序

/*
 * 冒泡排序法
 * 在要排序的一组数中,对当前还未排好序的范围内的全部数,自前而后对相邻的两个数
 * 依次进行比较和交换位置,让较大的数往后,较小的数往前(冒泡)。
 * 即,每当两个相邻的数比较后发现他们的排序与排序要求相反时,将他们交换位置
 */

public static void mpSort(int[] a){
		int i,j;
		for(i=0;i<a.length-1;i++){
			for(j=0;j<a.length-i-1;j++)
			{
				if(a[j]>a[j+1])
				{
					int temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
		}
		
	}

(2).选择排序

/*
 * 选择排序法
 * 在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
 * 然后在剩下的数当中再找最小的数,与第二个位置的数交换;
 * 如此循环到倒数第二个数和最后一个数比较为止。
 */

public static void selectSort(int[] a){
		for (int i = 0; i < a.length-1; i++) {
			int k=i;//k记录更小值得下标,初始值就是每次循环的第一个值得下标
			for (int j = i+1; j < a.length; j++) {
				if(a[k]>a[j])
					k=j;
			}
			int temp=a[i];
			a[i]=a[k];
			a[k]=temp;
		}
	}

(3).插入排序

/*
* 插入排序的工作方式:像抓扑克牌
* 开始时,我们的左手为空并且桌子上的牌面向下;
* 然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置(大牌在后,小牌在前);
* 为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。
*/
public static void insertSort(int[] a){
		for (int i = 0; i < a.length-1; i++) {
			for (int j = i+1; j >0; j--) {
				if(a[j]<a[j-1]){
					int temp=a[j];
					a[j]=a[j-1];
					a[j-1]=temp;
				}
			}
		}
	}
举报

相关推荐

JAVA数组

数组(java)

Java 数组

java 数组

【java】数组

【Java】数组

Java数组

java——数组

0 条评论