首页 / JAVA / Java数组基础+进阶
Java数组基础+进阶
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java数组基础+进阶,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5017字,纯文字阅读大概需要8分钟。
内容图文
数组概念:
数组就是存储同一种数据类型的多个元素的集合。
掌握数组的特点:
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
私信
关注
内容总结
以上是互联网集市为您收集整理的Java数组基础+进阶全部内容,希望文章能够帮你解决Java数组基础+进阶所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。