ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java数组基础+进阶

2020-02-07 10:09:44  阅读:159  来源: 互联网

标签:index arr Java 进阶 int System 数组 array


数组概念:
数组就是存储同一种数据类型的多个元素的集合。
掌握数组的特点:
1、数组的长度一旦确定,就不可以再改变;
2、数组中的每一个元素都有编号,从0开始,最大编号是数组的长度—1;
编号的专业叫法:索引
3、数组只可以存储相同数据类型的元素;
4、数组可以储存相同的元素
定义格式
A:数据类型[] 数组名;
B:数据类型 数组名[];
推荐是用A方式,B方法就忘了吧。
但是要能看懂
数组的初始化
A:动态初始化
只给长度,系统给出默认值
举例:int[] arr = new int[3];
B:静态初始化
给出值,系统决定长度
举例:int[] arr = new int[]{1,2,3};
简化版:int[] arr = {1,2,3};
数组的常见操作(必须掌握):
A:遍历

		方式1:
			
			public static void printArray(int[] arr) {
				for(int x=0; x<arr.length; x++) {
					System.out.println(arr[x]);
				}
			}
			
		方式2:
       
			public static void printArray(int[] arr) {
				System.out.print("[");
				for(int x=0; x<arr.length; x++) {
					if(x == arr.length-1) {
						System.out.println(arr[x]+"]");
					}else {
						System.out.println(arr[x]+", ");
					}
				}
			}

B:最值

		     //最大值:
			public static int getMax(int[] arr) {
				int max = arr[0];
				
				for(int x=1; x<arr.length; x++) {
					if(arr[x] > max) {
						max = arr[x];
					}
				}
				
				return max;
			}
			
		    //最小值:
			public static int getMin(int[] arr) {
				int min = arr[0];
				
				for(int x=1; x<arr.length; x++) {
					if(arr[x] < min) {
						min = arr[x];
					}
				}
				
				return min;
			}

C:逆序

	方式1:
		
			public static void reverse(int[] arr) {
				for(int x=0; x<arr.length/2; x++) {
					int temp = arr[x];
					arr[x] = arr[arr.length-1-x];
					arr[arr.length-1-x] = temp;
				}
			}
			
		方式2:

			public static void reverse(int[] arr) {
				for(int start=0,end=arr.length-1; start<=end; start++,end--) {
					int temp = arr[start];
					arr[start] = arr[end];
					arr[end] = temp;
				}
			}

D:查表

			public static String getString(String[] strArray,int index) {
				return strArray[index];
			}

E:基本查找

		方式1:

			public static int getIndex(int[] arr,int value) {
				for(int x=0; x<arr.length; x++) {
					if(arr[x] == value) {
						return x;
					}
				}
				
				return -1;
			}
			
		方式2:
		
			public static int getIndex(int[] arr,int value) {
				int index = -1;
			
				for(int x=0; x<arr.length; x++) {
					if(arr[x] == value) {
						index = x;
						break;
					}
				}
				
				return index;
			}		

数组进阶操作(必须掌握):
动态数组的练习:
例题1,动态数组实现下列功能:
先初始化一个长度为10的数组,然后进行一下操作;
1、指定位置 插入元素
2、指定位置 删除元素
3、指定位置 追加元素
4、指定位置 修改元素
代码实现:

package shu.zu;

import java.util.Scanner;

public class Text_BianHuan {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] array = new int[10];
		for (int index = 0; index < array.length; index++) {
			System.out.print("请输入第" + index + "个元素:");
			array[index] = sc.nextInt();
		}
			System.out.println("数组初始化成功!");
			System.out.print("数组array={");
			for(int i=0;i<array.length;i++){
				System.out.print(array[i]);
				if(i!=array.length-1){
					System.out.print(",");
				}else{
					System.out.print("}");
					System.out.println();
				}
			}
		boolean flag = true;
		while (flag) {
			System.out.println("1、插入元素    2、删除元素   3、修改元素   4、查询数组   5、退出程序");
			int num = sc.nextInt();
			switch (num) {
			case 1:
				System.out.print("请输入要插入新元素的索引(0-" + (array.length - 1) + "):");
				int chaIndex = sc.nextInt();
				System.out.print("请输入要加入的新元素:");
				int value = sc.nextInt();
				int[] array2 = new int[array.length + 1];
				for (int i = 0; i < array2.length; i++) {
					if (chaIndex > i) {
						array2[i] = array[i];
					} else if (i == chaIndex) {
						array2[i] = value;
					} else {
						array2[i] = array[i - 1];
					}
				}
				array = array2;
				System.out.println("插入成功!");
				break;
			case 2:
				System.out.print("请输入要删除元素的索引:");
				int index = sc.nextInt();
				int[] array1 = new int[array.length - 1];
				for (int i = 0; i < array1.length; i++) {
					if (i < index) {
						array1[i] = array[i];
					} else {
						array1[i] = array[i + 1];
					}
				}
				array = array1;
				System.out.println("删除成功!");
				break;
			case 3:
				System.out.print("请输入要删修改元素的索引:");
				int xiuIndex = sc.nextInt();
				System.out.print("请输入要修改后元素的值:");
				int value1 = sc.nextInt();
				array[xiuIndex] = value1;
				System.out.println("修改成功!");
				break;
			case 4:
				for(int i=0;i<array.length;i++){
					System.out.print(array[i]);
					if(i!=array.length-1){
						System.out.print(",");
					}else{
						System.out.print("}");
						System.out.println();
					}
				}
				break;
			case 5:
				System.out.println("退出成功!");
				flag = false;
				break;
			default:
				System.out.println("您输入的选项有误,请重新开始!");
				continue;
			}
		}
	}
}

例题2,去掉数组中重复的元素;
数组 array = { 4, 3, 35, 3, 2, 4, 6, 3 }
解析:利用boolean类型的数组,通过排序比较方法改变boolean数组元素值,再通过临时数组接收去掉重复元素的数组,然后在赋值给原数组,通过赋值地址值的方式;
代码实现:

package day.shuzu;

public class Text {
	public static void main(String[] args) {
		int[] array = { 4, 3, 35, 3, 2, 4, 6, 3 };
		boolean[] flag = new boolean[array.length];
		for (int index = 0; index < array.length; index++) {
			for (int i = index + 1; i < array.length; i++) {
				if (array[index] == array[i]) {
					flag[i] = true;
				}
			}
		}
		int sum = 0;
		for (int index = 0; index < flag.length; index++) {
			if (flag[index] == false) {
				sum += 1;
			}
		}
		int[] array1 = new int[sum];
		int a = 0;
		for (int index = 0; index < flag.length; index++) {
			if (flag[index] == false) {
				array1[a] = array[index];
				a++;
			}
		}
		for (int index = 0; index < array1.length; index++) {
			System.out.print(array1[index] + ",");
		}
	}
}
飘洋过海的小毛驴 发布了6 篇原创文章 · 获赞 0 · 访问量 78 私信 关注

标签:index,arr,Java,进阶,int,System,数组,array
来源: https://blog.csdn.net/qq_42487358/article/details/104205881

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有