一.数组的最大、最小、过滤重复
1.数组的最大值
- 定义一个变量存放最大值,假设数组中的第一个元素为该变量的初始值
- 该变量跟数组中的其他数进行比较,如果遇到比该值更大的就重新赋值
- 比较完之后,最后该变量里存放的就是数组中的最大值
代码:
package com.huaweiyun.array;
/**
* 数组的最大值
*/
public class ArrayDemo05 {
public static void main(String[] args) {
int[] arr = {12, 34, 56, 3, 45, 23};
int max = arr[0];
for (int i = 1; i < arr.length; i++){
if (max < arr[i])
{
max = arr[i];
}
}
System.out.println(max);
}
}
2.数组的最小值
代码:
package com.huaweiyun.array;
/**
* 数组的最小值
*/
public class ArrayDemo06 {
public static void main(String[] args) {
int[] arr = {12, 34, 56, 3, 45, 23};
int min = arr[0];
for (int i = 1; i < arr.length; i++){
if (min > arr[i])
{
min = arr[i];
}
}
System.out.println(min);
}
}
3.数组的过滤重复
- 去掉数组中重复的元素,给每个元素一个标记,每个元素跟数组中其他元素进行比较,如果完全相同就改变原有的标记
- 将没有改变的元素重新放入一个新的数组,并统计其个数
- 最终将新数组的数据复制到另一一个新的数组中
System.arraycopy()方法可以实现数组的复制
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src源数组srcPos源数组中的起始位置dest目标数组descPos目标数组中的起始位置length要复制的数组元素的数量
代码
package com.huaweiyun.array;
/**
* 过滤重复
*/
public class ArrayDemo07 {
public static void main(String[] args) {
int[] arr = {12, 34, 45, 12, 67, 34, 45};
// 定义一个新的数组用来存放没有重复的数
int[] tempArr = new int[arr.length];
int t = 0; // 表示没有重复的元素个数
// 遍历数组
for (int i = 0; i < arr.length; i++) {
boolean flag = true;// 给每个元素一个初始标记
// 每个元素跟后面的元素进行比较,如果后面有相同的就表示重复了,改变标记
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]){
// 改变标记
flag = false;
break;
}
}
// 统计没有改变标记的元素就是没有重复的元素
if(flag == true){
// 将没有重复的元素放入新的数组中
tempArr[t] = arr[i];
// 统计没有重复的元素个数
t++;
}
}
// 在创建一个数组,用来只存放过滤后的元素
int[] newArr = new int[t];
// 将tempArr中的非0的元素复制到newArr数组中
System.arraycopy(tempArr,0,newArr,0,t);
// 输出newArr数组中的元素
for (int i = 0; i < newArr.length; i++) {
System.out.println(newArr[i]);
}
}
}