一、数组 创建数组
数组 创建数组
package com.chenheng.array.a;
import cn.hutool.core.util.ArrayUtil;
import com.chenheng.array.utils.MyArrayUtil;
public class MinValueArray {
public static void main(String[] args) {
int[] a = new int[5];
a[0] = (int)(Math.random() * 100);
a[1] = (int)(Math.random() * 100);
a[2] = (int)(Math.random() * 100);
a[3] = (int)(Math.random() * 100);
a[4] = (int)(Math.random() * 100);
method02(a);
}
public static void method02(int[] a) {
System.out.println("数组中的各个随机数是:");
MyArrayUtil.toString(a);
System.out.println(ArrayUtil.min(a));
}
public static void method01(int[] a) {
System.out.println("数组中的各个随机数是:");
MyArrayUtil.toString(a);
System.out.println("本次练习的目的是,找出最小的一个值:");
int min = a[0];
for (int i = 0; i < a.length; i++) {
if (min > a[i]) {
min = a[i];
}
}
System.out.println(min);
}
}
二、数组 初始化数组
数组 初始化数组
package com.chenheng.array.b;
import cn.hutool.core.util.ArrayUtil;
import com.chenheng.array.utils.MyArrayUtil;
import org.apache.commons.lang3.ArrayUtils;
public class ReverseArray {
private static int[] a;
static {
a = new int[5];
for (int i = 0; i < a.length; i++) {
a[i] = (int) (Math.random() * 100);
}
}
public static void main(String[] args) {
method04();
}
private static void method04() {
System.out.println("数组中的各个随机数是:");
MyArrayUtil.toString(a);
ArrayUtil.reverse(a);
System.out.println("反转后数组中的各个随机数是:");
MyArrayUtil.toString(a);
}
private static void method03() {
System.out.println("数组中的各个随机数是:");
MyArrayUtil.toString(a);
ArrayUtils.reverse(a);
System.out.println("反转后数组中的各个随机数是:");
MyArrayUtil.toString(a);
}
public static void method02() {
int[] tempArray = new int[a.length];
for (int i = a.length - 1; i >= 0; i--) {
tempArray[i] = a[i];
}
System.out.println("临时数组中的各个随机数是:");
MyArrayUtil.toString(tempArray);
for (int i = 0; i < a.length; i++) {
a[i] = tempArray[tempArray.length-1-i];
}
System.out.println("反转后数组中的各个随机数是:");
MyArrayUtil.toString(a);
}
public static void method01() {
System.out.println("数组中的各个随机数是:");
MyArrayUtil.toString(a);
System.out.println("反转后-----------");
int i = 0;
for(int j = a.length - 1; j > i; ++i) {
int tmp = a[j];
a[j] = a[i];
a[i] = tmp;
--j;
}
MyArrayUtil.toString(a);
}
}
三、数组 排序
数组 排序
package com.chenheng.array.c;
import com.chenheng.array.utils.MyArrayUtil;
public class SortArray {
private static int[] a;
static {
a = new int[5];
for (int i = 0; i < a.length; i++) {
a[i] = (int) (Math.random() * 100);
}
}
public static void main(String[] args) {
bubbleSortArray(a);
}
public static void bubbleSortArray(int[] a) {
System.out.println("排序前:");
MyArrayUtil.toString(a);
for (int i = 0; i < a.length-1-0; i++) {
if (a[i] > a[i+1]) {
int temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
System.out.println("第一轮排序");
MyArrayUtil.toString(a);
for (int i = 0; i < a.length-1-1; i++) {
if (a[i] > a[i+1]) {
int temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
System.out.println("第二轮排序");
MyArrayUtil.toString(a);
for (int j = 0; j < a.length; j++) {
for (int i = 0; i < a.length-j-1; i++) {
if(a[i]>a[i+1]){
int temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
}
System.out.println("排序后:");
MyArrayUtil.toString(a);
}
public static void selectionSortArray(int[] a) {
System.out.println("排序前:");
MyArrayUtil.toString(a);
for (int i = 0; i < a.length-1; i++) {
if (a[0] > a[i+1]) {
int temp = a[0];
a[0] = a[i+1];
a[i+1] = temp;
}
}
System.out.println("第一轮排序");
MyArrayUtil.toString(a);
for (int i = 1; i < a.length-1; i++) {
if (a[1] > a[i+1]) {
int temp = a[1];
a[1] = a[i+1];
a[i+1] = temp;
}
}
System.out.println("第二轮排序");
MyArrayUtil.toString(a);
for (int i = 0; i < a.length-1; i++) {
for (int j = i+1; j < a.length; j++) {
if (a[i] > a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
System.out.println("选择排序第一个:");
MyArrayUtil.toString(a);
for (int i = 0; i < a.length -1 ; i++) {
for (int j = i+1; j < a.length; j++) {
swap(a, i, j);
}
}
System.out.println("选择排序第二个:");
MyArrayUtil.toString(a);
}
public static void swap(int[] a, int i, int j) {
if (a[i] > a[j]) {
int temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
四、数组 增强型for循环
数组 增强型for循环
package com.chenheng.array.d;
import cn.hutool.core.util.ArrayUtil;
import com.chenheng.array.utils.MyArrayUtil;
public class EnhancedForArray {
private static int[] a;
static {
a = new int[5];
for (int i = 0; i < a.length; i++) {
a[i] = (int) (Math.random() * 100);
}
}
public static void main(String[] args) {
maxVaule(a);
}
public static void maxVaule(int[] a) {
MyArrayUtil.toString(a);
int max = ArrayUtil.max(a);
System.out.println("最大值:" + max);
}
public static void maxValueArray(int[] a) {
MyArrayUtil.toString(a);
int max = a[0];
for (int each : a) {
if (each >= max) {
max = each;
}
}
System.out.println("最大值:" + max);
}
public static void traversal() {
for (int i = 0; i < a.length; i++) {
int each = a[i];
System.out.println(each);
}
for (int each : a) {
System.out.println(each);
}
}
}
五、数组 复制数组
数组 复制数组
package com.chenheng.array.e;
import cn.hutool.core.collection.CollectionUtil;
import com.chenheng.array.utils.MyArrayUtil;
public class CopyArray {
public static void main(String[] args) {
mergeArray();
}
public static void mergeArray() {
int[] a = new int[(int) (Math.random() * 5) + 5];
for (int i = 0; i < a.length; i++) {
a[i] = (int) (Math.random() * 100);
}
System.out.println("a数组各个元素:");
MyArrayUtil.toString(a);
int[] b = new int[(int) (Math.random() * 5) + 5];
for (int i = 0; i < b.length; i++) {
b[i] = (int) (Math.random() * 100);
}
System.out.println("b数组各个元素:");
MyArrayUtil.toString(b);
int[] c = new int[a.length + b.length];
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);
System.out.println("c数组各个元素:");
MyArrayUtil.toString(c);
}
private static void handCopyArray() {
int[] a = new int[]{18,62,68,82,65,9};
int[] b = new int[3];
for (int i = 0; i < b.length; i++) {
b[i] = a[i];
}
MyArrayUtil.toString(b);
System.arraycopy(a, 0, b, 0, 3);
MyArrayUtil.toString(b);
}
}
六、数组 二维数组
数组 二维数组
package com.chenheng.array.f;
public class TwoDimensionalArray {
public static void main(String[] args) {
exerciseArray();
}
public static void exerciseArray() {
int[][] a = new int[5][5];
System.out.println(a.length);
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
a[i][j] = (int)(Math.random() * 100);
}
}
System.out.println("打印出二维数组");
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
System.out.println("找出这个二维数组里,最大的那个值,并打印出其二维坐标");
int max = 0;
int x = 0;
int y = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]+"\t");
if (a[i][j] > max) {
max = a[i][j];
x = i;
y = j;
}
}
System.out.println();
}
System.out.println("数组最大值->"+max);
System.out.println("数组最大值的坐标->"+x+"\t"+y);
}
public static void initArray() {
int[][] a = new int[2][3];
a[1][2] = 5;
int[][] b = new int[2][];
b[0] = new int[3];
b[0][5] = 5;
int[][] c = new int[][]{{1,2,4},{4,5},{6,7,8,9}};
}
}
七、数组 Arrays
数组 Arrays
package com.chenheng.array.g;
import java.util.Arrays;
public class ExerciseArrays {
private static int[] a;
private static int[] b;
static {
a = new int[]{18, 62, 68, 82, 65, 9};
b = new int[]{18, 62, 68, 82, 65, 8};
}
public static void main(String[] args) {
sortTwoDimensionalArray();
}
public static void sortTwoDimensionalArray() {
int[][] twoDimensionalArray = new int[5][8];
System.out.println("初始化数组->");
for (int i = 0; i < twoDimensionalArray.length; i++) {
for (int j = 0; j < twoDimensionalArray[i].length; j++) {
twoDimensionalArray[i][j] = (int)(Math.random() * 100);
System.out.print(twoDimensionalArray[i][j]+"\t");
}
System.out.println();
}
System.out.println("-------------------------------------");
int[] tempArray = new int[40];
for(int i=0; i<twoDimensionalArray.length; i++){
System.arraycopy(twoDimensionalArray[i], 0, tempArray, 8*i, twoDimensionalArray[i].length);
}
Arrays.sort(tempArray);
System.out.println("排序后的数组->" + Arrays.toString(tempArray));
for(int i=0; i<twoDimensionalArray.length; i++)
{
for(int j=0;j<twoDimensionalArray[i].length; j++){
twoDimensionalArray[i][j] = tempArray[twoDimensionalArray[i].length*i+j];
System.out.print(twoDimensionalArray[i][j] + "\t");
}
System.out.println();
}
}
public static void fillArrayBySameElement() {
int[] needFillArray = new int[10];
Arrays.fill(needFillArray, 10);
System.out.println(Arrays.toString(needFillArray));
}
public static void isSameArray() {
System.out.println(Arrays.equals(a, b));
}
public static void searchElement() {
Arrays.sort(a);
System.out.println(Arrays.toString(a));
System.out.println("数字9 出现的位置是->"+Arrays.binarySearch(a, 9));
}
public static void sortArray() {
System.out.println("排序前->"+ Arrays.toString(a));
Arrays.sort(a);
System.out.println("排序后->"+ Arrays.toString(a));
}
public static void toArrayString() {
String content = Arrays.toString(a);
System.out.println(content);
}
public static void copyArray() {
int[] a = new int[]{18, 62, 68, 82, 65, 9};
int[] b = Arrays.copyOfRange(a, 0, 3);
for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + "\t");
}
}
}
八、工具类
package com.chenheng.array.utils;
public class MyArrayUtil {
public static void toString(int[] array) {
StringBuilder sb = new StringBuilder();
int length = array.length;
for (int i = 0; i < length; i++) {
if (i == length-1) {
sb.append(array[i]);
} else{
sb.append(array[i] + ",");
}
}
System.out.println(sb);
}
}