目录
1.求数组中数字的平均值
public class WorkArray {
public static double avg(int[] array) {
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
double ret = (double)sum/(double)array.length;
return ret;
}
public static void main(String[] args) {
int[] array ={1,2,3,4,5};
System.out.println(avg(array));
}
}
2.数组中求和
public class WorkArray {
public static int sum(int[] array) {
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum = sum + array[i];
}
return sum;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
System.out.println(sum(array));
}
}
3.定义一个新的数组
public class WorkArray {
public static int[] transform(int[] array) {
int[] ret = new int[array.length];
for (int i = 0; i < array.length; i++) {
ret[i]= array[i] * 2;
}
return ret;
}
public static void main(String[] args) {
int[] array = {1,2,3};
int[] output = transform(array);
//第一种打印
for (int i = 0; i < output.length; i++) {
System.out.print(output[i]+" ");
}
System.out.println();
//第二种打印
System.out.println(Arrays.toString(output));
}
}
4.从小到大排序
public class WorkArray {
public static void bubbleSort(int[] array) {
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1-i; j++) {
if(array[j]>array[j+1]) {
int tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
}
public static void main(String[] args) {
int[] array = {2,8,4,1,9};
System.out.println("排序前"+Arrays.toString(array));
bubbleSort(array);
System.out.println("排序后"+Arrays.toString(array));
}
}
5.判断数组是否有序
public class WorkArray {
public static boolean orderArray(int[] array) {
boolean flg = false;
for (int i = 0; i < array.length-1; i++) {
if(array[i] <= array[i+1]) {
flg = true;
}else {
flg = false;
}
}
return flg;
}
public static void main(String[] args) {
int[] array = {1,2,4,4,3};
System.out.println(orderArray(array));
}
}
6.二分查找
public class WorkArray {
public static int binarySearch(int[] array,int toFind) {
//数组和要找的数
int left = 0;
int right = array.length-1;
while(left <= right) {
int mid = (left + right) / 2;
if(toFind < array[mid]) {
//在左侧区域找
right = mid - 1;
}else if(toFind >array[mid]) {
//在右侧区域找
left = mid + 1;
}else {
//相等,找到了
return mid;
}
}
//循环结束,没找到
return -1;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6,7,8,9};
System.out.println(binarySearch(array, 3));
}
}
7.拷贝数组
public class WorkArray {
public static int[] copyOf(int[] array) {
int[] ret = new int[array.length];
for (int i = 0; i < array.length; i++) {
ret[i] = array[i];
}
return ret;
}
public static void main9(String[] args) {
int[] array = {1,2,3,4,5};
int[] newArray = copyOf(array);
System.out.println(Arrays.toString(newArray));
}
}
8.字符拼接
public class WorkArray {
public static String toString(int[] array) {
if(array == null){
return null;
}
String str = "[" ;
for (int i = 0; i < array.length; i++) {
str+=array[i];//拼接方式
//拼接完元素要拼接逗号,
//在这个for循环里,if条件一直成立,所以可以不用判断
if(i < array.length) {
str += ",";
}
}
//循环结束,把"]"补上;
str+="]" ;
return str;
}
public static void main10(String[] args) {
int[] array = {1,2,3,4};
String str = toString(array);
System.out.println(str);
}
}
9.找数组中出现一次的数字
在数组中重复出现的数字个数必须是偶数,如果重复出现的数字个数是奇数的话,解法就不是用下面这种解法
public class WorkArray {
public static void main(String[] args) {
int[] array = {1,2,4,4,3,2,1};
int sum = array[0];
for (int i = 1; i < array.length; i++) {
sum = sum ^ array[i];
}
System.out.println(sum);
}
}