Eclipse使用,数组操作
1.Eclipse使用
1.1 Eclipse获取
Eclipse官网
Eclipse下载页面
1.2 Eclipse安装和准备
1.3 在Eclipse中创建第一个Java Project Java项目
1.File -> New -> Java Project
Alt + Shift + N Or Ctrl + N
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ruzquyIH-1587901637059)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200426104516544.png)]
2. 创建
Java Project配置页面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-edvTkXow-1587901637060)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200426104544776.png)]
3.创建包
4.创建包配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mIfD7UUt-1587901637061)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200426104633728.png)]
创建java程序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MraOOfif-1587901637061)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200426105644827.png)]
6.配置类名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7TzWIQkT-1587901637061)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200426172000519.png)]
7Ctrl + +/-
调整代码区字号
2.作业讲解
2.1 找出数组中最大值的下标位置
package com.qfedu.a.homework;
public class HomeWork1 {
public static void main(String[] args) {
int[] array= {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};
int maxIndex = maxIndexOf(array);
System.out.println("最大值下标位置:"+maxIndex);
}
/*
* a. 找出数组中最大值的下标位置
* 方法分析:* 固定格式:
* public static 不要问
* 返回值类型:
* int 返回值数据是类型* 方法名:
* maxIndexOf 最大值下标位置* 形式参数列表:
* int[] arr 这里需要在一个int类型数组中找出
*
* 方法声明:
* public static int maxIndexOf(int[]arr)
*/
/*
*
* 找出数组中最大值的下标位置
*
* @param arr 查询最大值下标位置的数组
* @return 返回最大值所在的下标位置,int类型
*/
public static int maxIndexOf(int[] arr) {
int maxIndex=0;
for (inti=1; i<arr.length; i++) {
if (arr[maxIndex] <arr[i]) {
maxIndex = i;
}
}
returnmaxIndex;
}
}
2.2 找出数组中最小值的下标位置
package com.qfedu.a.homework;
public class HomeWork2 {
public static void main(String[] args) {
int[] array = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};
int mindex = mainIndexOf(array);
System.out.print(mindex);
}
/**
* 找出数组中最小值下标位置
*
*
* @param array 查询操作的数组
* @return 最小值的下标位置
*/
public static int mainIndexOf(int[] array) {
int minIndex = 0;
for (int i = 0; i < array.length; i++) {
if (array[minIndex] > array[i] ) {
i = minIndex;
}
}
return minIndex;
}
}
2.3 在指定位置插入指定元素【难点】
c. 在指定位置插入指定元素【难点】
存在一个数组,数组中的元素为
int[] array= {1, 3, 5, 7, 9, 11, 13, 15,17, 0};
要求
1.0是无效元素,仅占位使用
2.当前数组中【有效元素】个数为9
需求
在该数组中的指定下标位置放入指定元素
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EzHnZrPT-1587901637062)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200426173053686.png)]
代码运行中是否有需要考虑的异常情况?
越界问题
用户指定的下标位置,超出的有效位置
需要在代码中进行参数合法性判定!!
方法分析:
固定格式:
public static
返回值类型:
void:
OK选择!!!
int:
操作成功返回1,失败返回-1
boolean:[选择]
添加成功返回true,运行失败返回false
方法名:
add这里是一个添加操作
形式参数列表:
1.添加数据的数组
2.指定添加的下标位置
3.指定添加的数据
(int[] arr, intindex, intinsert)
方法声明:
public static boolean add(int[] arr, intindex, intinsert)
package com.qfedu.a.homework;
public class HomeWork3 {
public static void main(String[] args) {
int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
boolean ret = add(array, 5, 100);
if (true == ret) {
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
} else {
System.out.println("运行失败");
}
}
/**
* 在数组arr中指定下标位置,添加指定元素
*
* @param arr 添加元素是数组
* @param index 指定添加数据的下标位置
* @param insert 指定添加的数据
* @return 方法运行成功完成添加操作,返回true,否则返回false
*/
public static boolean add(int[]arr, int index, int insert) {
if (index < 0 || index > arr.length - 1) {
System.out.println("Input ");
return false;
}
for (int i = arr.length - 1; i > index; i--) {
arr[i] = arr[i - 1];
}
arr[index] = insert;
return true;
}
}
2.4删除数组中的指定下标的元素【难点】
d. 删除数组中的指定下标的元素【难点】
存在一个数组,数组中的元素为
int[] array = {1, 3, 5, 7, 9, 11, 13, 15,17, 19};
要求:
1. 0是无效元素,仅占位使用
需求:
在当前数组中删除指定下标的元素
例如:
删除下标5的元素
结果 {1, 3, 5, 7, 9, 13, 15, 17, 19, 0}
0占位!!!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MgZ3PRgL-1587901637062)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200426173716626.png)]
方法分析:
固定格式:
public static不要问
返回值类型:boolean: 检测方法方法运行的状态,运行成功返回true,运行失败返回false
方法名:
remove√
delete
形式参数列表:
1.int[] arr需要删除数据的数组
2.intindex指定删除的下标位置
这里需要对于下标位置进行判断,必须是一个合法的下标位置
(int[] arr, intindex)
方法声明:
public static boolean remove(int[] arr, intindex)
方法分析:
固定格式:
public static
返回值类型:
void:
OK选择!!!
int:
操作成功返回1,失败返回-1
boolean:检测方法方法运行的状态,运行成功返回true,运行失败返回false
方法名:
remove√delete
形式参数列表:
1.int[] arr需要删除数据的数组
2.intindex指定删除的下标位置
这里需要对于下标位置进行判断,必须是一个合法的下标位置
(int[] arr, intindex)
方法声明:
public static boolean remove(int[] arr, intindex)
package com.qfedu.a.homework;
public class HomeWork4 {
public static void main(String[] args) {
int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
boolean ret = remover(array, 5);
if (ret == false) {
System.out.print("输入失败");
} else {
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
System.out.println();
}
}
/**
*
* @param array 需要进行参数操作的数据
* @param index
* @return 方法运行成功返回true,失败返回false
*/
public static boolean remover(int[] arr, int index) {
if (index < 0 || index > arr.length - 1) {
System.out.println("Input Parmeter is Invalid!");
return false;
}
for (int i = index; i < arr.length - 1; i++) {
arr[i] = arr[i + 1];
}
arr[arr.length - 1] = 0;
return true;
}
}
3.选择排序算法推导
3.1找出数组中最大值,和下标为0的元素互换位置
int index = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[index] < arr[i]) {
index = i;
}
}
if (index != 0) {
int temp = arr[0];
arr[0] = arr[index];
arr[index] = temp;
}
3.2 接上一题, 找出数组中剩余数据最大值,和下标为1的元素互换位置
int index = 1;
for (int i = 2; i < arr.length; i++) {
if(arr[index] < arr[i]) {
index = i;
}
}
if (index != 1) {
int temp = arr[1];
arr[1] = arr[index];
arr[index] = temp;
}
3.3 接上一题, 找出数组中最大值,和下标为2的元素互换位置
int index = 2;
for (int i = 3; i < arr.length; i++) {
if(arr[index] < arr[i]) {
index = i;
}
}
if (index != 2) {
int temp = arr[2];
arr[2] = arr[index];
arr[index] = temp;
}