zoukankan      html  css  js  c++  java
  • Java:Arrays类

    java.utl包的Arrays类包含了用来操作数组的各种方法,本Blog就将介绍数组的各种操作。

    Arrays类所在包

    开头已经说了java.utl包中有Arrays类,所以如果要使用Arrays类的话,就要在开头先导入这个包中的这个类了。

    import java.utl.Arrays
    

    Arrays类填充替换数组元素

    Arrays.fill(array, value);
    Arrays.fill(array, from_index, to_index, value);
    

    其实第一个fill方法很容易理解,就是将array数组的所有数值都赋值为value,就结束了。

    而第二种fill方法也只是加了一个范围,即让array[from_index] ~ array[to_index - 1]的所有值赋值为value,这里务必记住这个范围不包含array[to_index]这个数。

    package base;
    import java.util.Arrays;
    
    public class Arrays_fill
    {
    	public static void main(String[] args)
    	{
    		int a[] = new int[10];
    		Arrays.fill(a, 999);
    		for (int i = 0; i < a.length; i++)
    			System.out.print(a[i] + " ");
    		System.out.println();
    		
    		Arrays.fill(a, 3, 3 + 4 + 1, 100);
    		for (int i = 0; i < a.length; i++)
    			System.out.print(a[i] + " ");
    		System.out.println();
    	}
    }
    

    Arrays类对数组进行排序

    Arrays.sort(array);
    Arrays.sort(array, from_index, to_index);
    

    方法很容易理解,第一个方法使用就是直接对数组array进行从小到大的快速排序,而第二个方法只不过是规定了一个范围,即对数组array的array[from_index] ~ array[to_index - 1]进行排序,记住这里是不包含array[to_index]这个数的哟。

    package base;
    import java.util.Arrays;
    
    public class Arrays_sort
    {
    	public static void main(String[] args)
    	{
    		int a[] = {4, 3, 6, 5, 1, 2};
    		Arrays.sort(a);
    		for (int i = 0; i < a.length; i++)
    			System.out.print(a[i] + " ");
    		System.out.println();
    		
    		a = new int[]{4, 3, 6, 5, 1, 2};
    		Arrays.sort(a, 2, 5 + 1);
    		for (int i = 0; i < a.length; i++)
    			System.out.print(a[i] + " ");
    		System.out.println();
    	}
    }
    

    Arrays类复制数组

    Arrays.copyOf(array, to_index);
    Arrays.copyOfRange(array, from_index, to_index);
    

    第一个方法其实就是返回一个数组,而这个数组就等于数组array的前to_index个数,也就是array[0] ~ array[to_index - 1]。

    而第二种方法也只是加了一个初始的位置,即返回一个数组等于array[from_index] ~ array[to_index - 1]。

    这里要注意一下,不管是上面哪种使用方法,都务必记住范围是不包含array[to_index]这个数。

    package base;
    import java.util.Arrays;
    
    public class Arrays_copyOf
    {
    	public static void main(String[] args)
    	{
    		int a[] = {4, 3, 6, 5, 1, 2};
    		int b[] = Arrays.copyOf(a, 4);
    		int c[] = Arrays.copyOfRange(a, 2, 4 + 1);
    		
    		for (int i = 0; i < b.length; i++)
    			System.out.print(b[i] + " ");
    		System.out.println();
    		
    		for (int i = 0; i < c.length; i++)
    			System.out.print(c[i] + " ");
    		System.out.println();
    	}
    }
    

    Arrays类查询数组

    Arrays.binarySearch(array, value);
    Arrays.binarySearch(array, from_index, to_index, value);
    

    这里Arrays.binarySearch方法中的数组array必须是从小到大排好序的,这点务必注意,因为其实这个方法是用二分算法实现的。如果你的数组并不是有序的,请先调用Arrays.sort方法对其进行排序,再去二分查找。

    这里先说第一行的方法,就是在array数组中去找寻value值最后一次出现所在的索引位置。而如果array数组中根本没有value这个值,会返回一个负数。

    再说第二个方法,其实就是加了个搜索的范围,即在array[from_index] ~ array[to_index - 1]中去找寻value值最后一次出现的索引位置,没有找到的话会返回一个负数。这里务必注意,范围是不包含array[to_index]的。

    package base;
    import java.util.Arrays;
    
    public class Arrays_binarySearch
    {
    	public static void main(String[] args)
    	{
    		int a[] = {0, 1, 1, 3, 3, 4, 4, 4, 6, 8}; // 这里a数组必须是有序的,否则无法使用binarySearch。
    		System.out.println(Arrays.binarySearch(a, 4));
    		System.out.println(Arrays.binarySearch(a, 5));
    		System.out.println(Arrays.binarySearch(a, 2, 5 + 1, 3));
    		System.out.println(Arrays.binarySearch(a, 2, 5 + 1, 8));
    	}
    }
    
  • 相关阅读:
    Jquery实现Gridview全选功能
    SQL Server日期计算
    避免表格table被撑开变形的CSS代码实例
    oracle游标使用
    最短路径算法及应用
    Jquery实现GridView隔行变色,鼠标经过变色,单击或者选中变色
    【项目】项目109
    【项目】项目107
    【项目】项目111
    【项目】项目110
  • 原文地址:https://www.cnblogs.com/000zwx000/p/12467068.html
Copyright © 2011-2022 走看看