到现在为止,想象各位老铁已经接触过Java数组部分的简单知识了!那么,就跟着笔者做几个简单的数组有关的练习题吧!!(Java语言)
方法1:
- public static void main(String[] args) {
- int[] array={1,2,3,4};
- System.out.println(Arrays.toString(array));
- }
代码的运行结果为:

方法2:
-
- public static String myToString(int[] array) {
- String ret="[";
- for (int i = 0; i < array.length; i++) {
- ret=ret+array[i];
- if(i!=(array.length-1)) {
- ret=ret+",";
- }
- }
- ret=ret+"]";
- return ret;
- }
-
-
- public static void main(String[] args) {
- int[] array={1,2,3,4,5,6,7,8};
- System.out.println(myToString(array));
- }
代码的运行结果为:

方法1:
- public static void main(String[] args) {
- int[] array={1,2,3,4};
- int[] array2 =new int[array.length];
- for (int i = 0; i < array.length; i++) {
- array2[i]=array[i];
- }
- System.out.println(Arrays.toString(array));
- System.out.println(Arrays.toString(array2));
-
- }
代码的运行结果为:

方法2:
- public class Main {
-
- public static void main(String[] args) {
- int[] array={1,2,3,4,5,6};
- int[] ret=Arrays.copyOf(array,array.length);
- System.out.println(Arrays.toString(ret));
- }
代码的运行结果为:

- public static int find(int[] array,int val) {
- for (int i = 0; i < array.length; i++) {
- if(array[i]==val) {
- return i;
- }
- }
- return -1;
- }
-
- public static void main(String[] args) {
- int[] array1={11,22,33,44,55,66};
- int ret=find(array1,44);
- System.out.println(ret);
- }
代码的运行结果为:

- public static int binarySearch(int[] array,int key) {
- int left=0;
- int right=array.length-1;
- while (left<=right) {
- int mid=(left+right)/2;
- if(array[mid]<key) {
- left=mid+1;
- } else if(array[mid]>key) {
- right=mid-1;
- } else {
- return mid;
- }
- }
- return -1;
- }
-
- public static void main(String[] args) {
- int[] array={2,4,6,8,10,12,14,16,18,20};
- Arrays.sort(array); //对乱序的数组进行排序
- System.out.println(binarySearch(array,10));
- }
代码的运行结果为:

- public static void func(int[] array) {
- int left=0;
- int right=array.length-1;
- while(left<right) {
- while (left<right && array[left]%2 !=0) {
- left++;
- }
- while (left<right && array[right]%2==0) {
- right--;
- }
- int tmp=array[left];
- array[left]=array[right];
- array[right]=tmp;
- }
- }
-
- public static void main(String[] args) {
- int[] array={1,2,3,4,5,6,7,8,9,0};
- func(array);
- System.out.println(Arrays.toString(array));
- }
代码的运行结果为:

- public static void bubblesort(int[] array ) {
- //趟数
- for (int i = 0; i < array.length; i++) {
- //每趟执行的次数
- boolean flg=false;
- for(int j=0;j<array.length-1-i;j++) {
- if(array[j]>array[j+1]) {
- int tmp=array[j+1];
- array[j+1]=array[j];
- array[j]=tmp;
- }
- }
- if(flg==false) {
- return ;
- }
- }
- }
-
- public static void main(String[] args) {
- int[] array={1,29,10,36,5,21,46,3,6};
- bubblesort(array);
- System.out.println(Arrays.toString(array));
- }
代码的运行结果为:

- public static int[] findtarget(int[] arrary ,int target) {
- int[] ret={-1,-1};
- for (int i = 0; i < arrary.length; i++) {
- for(int j=0;j<arrary.length;j++) {
- if(arrary[i]+arrary[j]==target) {
- ret[0] =i;
- ret[1]=j;
- return ret; //成功
- }
- }
- }
- return ret; //失败
- }
-
- public static void main(String[] args) {
- int[] array={1,10,3,4,5,0};
- int[] ret=findtarget(array,8);
- System.out.println(Arrays.toString(ret));
- }
代码的运行结果为:

- public static int findNum(int[] array) {
- int ret=array[0];
- for (int i = 1; i < array.length; i++) {
- ret=ret^array[i];
- }
- return ret;
- }
-
- public static void main(String[] args) {
- int[] array={10,10,3,5,3};
- int ret=findNum(array);
- System.out.println(ret);
- }
代码的运行的结果为:

方法1:将数组进行排序,中间的元素,一定为多数元素!
- public static void main(String[] args) {
- int[] array={1,1,2,1,2};
- Arrays.sort(array);
- System.out.println(array[array.length/2]);
- }
方法2:
- public static int majorityElement(int[] array) {
- int count=0;
- int tmp=array[0];
- for (int i = 0; i < array.length; i++) {
- if(array[i]==tmp) {
- count++;
- } else if(array[i] !=tmp) {
- count--;
- }
- if(count==0) {
- tmp=array[i];
- count++;
- }
- }
- return tmp;
- }
-
- public static void main(String[] args) {
- int[] array={1,2,1,2,1};
- int ret=majorityElement(array);
- System.out.println(ret);
- }
代码的运行结果为:

- public static boolean func(int[] array) {
- int count=0;
- for (int i = 0; i < array.length; i++) {
- if(array[i]%2==0) {
- count++;
- if(count==3) {
- return true;
- }
- }else {
- count=0;
- }
- }
- return false;
- }
-
- public static void main(String[] args) {
- int[] array={6,5,5,1};
- boolean ret=func(array);
- System.out.println(ret);
- }
代码的运行结果为:

- public static void swap(int[] array,int i,int j) {
- int tmp=array[i];
- array[i]=array[j];
- array[j]=tmp;
- }
-
- public static void reserve(int[] array) {
- int left=0;
- int right=array.length-1;
- while(left
- swap(array,left,right);
- left++;
- right--;
- }
- }
-
-
- public static void main(String[] args) {
- int[] array={6,9,5,1};
- reserve(array);
- System.out.println(Arrays.toString(array));
- }
代码的运行结果为:
