Java数组的学习

来源:互联网 发布:idm for mac 破解 编辑:程序博客网 时间:2024/06/06 11:43

数组:相同数据类型的集合

数组的定义

数据类型[ ] 变量名 = new 数据类型[数组的长度]

数据类型 变量名[ ]  = new 数据类型[数组的长度]

数组的常用操作

打印数组

    public static void printArray(int[] arr)          {              System.out.print("[");              for(int x=0; x<arr.length; x++)              {                  if(x!=arr.length-1)                      System.out.print(arr[x]+", ");                  else                      System.out.println(arr[x]+"]");                    }                 }      }  
获取最大值

public static int getMax(int[] arr)      {          int max = arr[0];            for(int x=1; x<arr.length; x++)          {              if(arr[x]>max)                  max = arr[x];          }          return max;      }  
获取最小值

public static int getMin(int[] arr)      {          int min = 0;          for(int x=1; x<arr.length; x++)          {              if(arr[x]<arr[min])                  min = x;          }          return arr[min];      }  
数组的排序及查找

import java.util.Random;import java.util.Scanner;public class ZongHe2{    public static void main(String[] args) {        //在数组中随机打印10个数        int[] arr = new int[10];        //循环十次,随机选中十个数        for(int i = 0;i < arr.length;i ++){            Random random = new Random();            //将随机数放入数组中            arr[i] = random.nextInt(100);         }                //打印数组        for(int i = 0;i < arr.length;i ++){            System.out.print(arr[i]+" ");        }                System.out.println();        //冒泡排序        for(int i = 0;i < arr.length - 1;i ++){            for(int j = 0;j < arr.length - 1- i;j ++){                //数组的比较大小                if(arr[j] > arr[j+1]){                    //调换数组的位置                    int temp = arr[j];                    arr[j] = arr[j+1];                    arr[j+1] = temp;                }            }        }        for(int i = 0;i < arr.length;i ++){            System.out.print(arr[i]+" ");        }                for (int i = 0; i < arr.length -1; i++) {            for (int j = 0; j < arr.length - 1 - i; j++) {                if(arr[j] > arr[j + 1]){                    int temp = arr[j];                    arr[j] = arr[j + 1];                    arr[j+1] = temp;                }            }        }                System.out.println();        //选择排序        for(int i = 0;i < arr.length - 1;i ++){            for(int j = i;j < arr.length - 1;j ++){                if(arr[i] > arr[j + 1]){                    int temp = arr[i];                    arr[i] = arr[j+1];                    arr[j+1] = temp;                }            }        }        for(int i = 0;i < arr.length;i ++){            System.out.print(arr[i]+" ");        }                System.out.println();        //二分法查找        System.out.println("请输入你要查找的数");        Scanner scanner = new Scanner(System.in);        int num = scanner.nextInt();        scanner.close();        int hi = arr.length;        int lo = 0;        if(num > arr[arr.length - 1] || num < arr[0]){            System.out.println("你查找的数超过数组的范围");        }else{            while(lo <= hi){                int mi = (hi + lo) / 2;                if(num < arr[mi]){                    hi = mi - 1;                }else if(num > arr[mi]){                    lo = mi + 1;                }else{                    System.out.println("你查找的"+num+"在数组的第"+(mi+1)+"位");                    return;                }            }            System.out.println("数字不存在");        }    }}
数组的常用操作方法

import java.util.ArrayList;import java.util.Arrays;import java.util.HashSet;import java.util.Set;import org.apache.commons.lang3.ArrayUtils;public class Test05 {/** * 数组的一些常用的方法 * @param args */public static void main(String[] args) {int[] arr = {12,54,23,56,67,98};//数组的排序Arrays.sort(arr);//打印数组for(int i = 0;i < arr.length;i ++){System.out.print(arr[i]+" ");}//打印数组2for(int a : arr){System.out.print(a+" ");}//输出的是数组的对象的内存单元地址System.out.println(arr);//数组的输出String arr2 = Arrays.toString(arr);System.out.println(arr2);//数组元素的反转ArrayUtils.reverse(arr);//System.out.println(Arrays.toString(arr));for(int i = 0;i < arr.length;i ++){System.out.print(arr[i]+" ");}System.out.println();//检查一个数组是否包含某值String[] arr1 = {"a","b","c"};boolean a = Arrays.asList(arr1).contains("a");System.out.println(a);//数组的填充Arrays.fill(arr,30);System.out.println(Arrays.toString(arr));//判断一个值在数组中的位置int[] arr3 = {23,45,32,12,48};Arrays.sort(arr3);System.out.println(Arrays.binarySearch(arr3, 48));//数组转化为list集合String[] str = {"a","b","c","d"};ArrayList<String> arraylist = new ArrayList<String>(Arrays.asList(str));System.out.println(arraylist);//数组转化为set集合Set<String> set = new HashSet<String>(Arrays.asList(str));System.out.println(set);//连接两个数组int[] a1 = {12,23,43}; int[] a2 = {56,89,32};int[] combine = ArrayUtils.addAll(a2, a1);for(int com : combine){System.out.print(com+" ");}}}




0 0
原创粉丝点击