Java数组的学习

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

数组的定义

数据类型[ ] 变量名 = 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]+" ");
		}
		
		//打印数组2
		for(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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值