JAVA - Arrays类

java.util.Arrays类的所有方法都是静态

JAVA中的Arrays类是一个实现对数组操作的工具类,包括了各种各样的静态方法,可以实现数组的排序和查找、数组的比较和对数组增加元素,数组的复制和将数组转换成字符串等功能,这些方法都有对所有基本类型的重载方法

* 类加载

import java.util.Arrays;

* 填充数组

给数组中所有元素附上相同值

static void fill(type[] a, type value);

给数组中从第fromIndex个元素到第toIndex个元素(不含)附上相同值

static void fill(type[] a, int fromIndex, int toIndex, type val);

int[] array0 = new int[5];        
System.out.println(Arrays.toString(array0));
Arrays.fill(array0,5);
System.out.println(Arrays.toString(array0));
Arrays.fill(array0, 0, 3, 9);
System.out.println(Arrays.toString(array0));

* 数组排序

采用优化的快速排序算法对数组进行排序,升序排列

static void sort(type[] a);

int[] array0 = new int[] {1,3,6,3,4,7,0};        
Arrays.sort(array0);
System.out.println(Arrays.toString(array0));

* 在已排序数组中,用二分法查找指定元素(可自定义排序

采用二分搜索法查找值v。若查找成功,则返回下标值(若有若干个匹配数组元素,则返回二分法查找到的第一个元素);若不成功,返回负数r,-r-1为将数值v插入数组a有序并使其保持有序的下标值

static int binarySearch(type[] a, type v);

采用二分搜索法在数组a的第fromIndex个元素到第toIndex个元素(不含)查找值v

static int binarySearch(type[] a, int fromIndex, int toIndex, type v);

int[] array0 = new int[] {1, 3, 6, 4, 3, 3, 7, 3, 3};        
System.out.println(Arrays.binarySearch(array0, 3));
System.out.println(Arrays.binarySearch(array0, 1, 3, 3));

* 数组打印

JAVA - 打印数组的方法

* 判断数组中元素值是否相等

JAVA - 判断数组相等

* 复制数组

JAVA - 数组复制

将指定数组复制到新数组,复制长度由newLength决定(若长度小于被复制数组长度则仅复制一部分;长度可大于被复制数组的长度

static <T> T[] copyOf(T[] original, int newLength)

复制指定数组从第from个元素到第to个元素(不含)到新数组

static <T> T[] copyOfRange(T[] original, int from, int to)

int[] array0 = new int[] {1, 3, 6, 4, 3, 3, 7, 3, 3};   
System.out.println(Arrays.toString(Arrays.copyOf(array0, array0.length)));
System.out.println(Arrays.toString(Arrays.copyOf(array0, 20)));
System.out.println(Arrays.toString(Arrays.copyOf(array0, 5)));
int[] array1 = new int[6];
array1 = Arrays.copyOfRange(array0, 5, 6);
System.out.println(Arrays.toString(array1));

* hascode方法

此方法返回基于指定数组的内容的哈希码。如果数组包含其他数组作为元素,哈希码是基于这些数组的身份的,而不是它们的内容

static int hashCode(Object[] a)

int[] array0 = new int[] {1, 3, 6, 4, 3, 3, 7, 3, 3};   
int[] array1 = new int[10];
array1 = Arrays.copyOf(array0, 9);
System.out.println(Arrays.hashCode(array0));
System.out.println(Arrays.hashCode(array1));

* clone方法

JAVA - 数组复制

* 将数组转成List集合

String[] arr1=new String[]{"A","B","C","D","E","F"};
//方法1
List<String> list = new ArrayList<String>();
for(int i = 0; i < arr1.length; i++) {
    list.add(arr1[i]);
}
System.out.println(list.toString());
//方法2
List<String > list2 = Arrays.asList(arr1);
System.out.println(list2.toString());

* 将数组转成Set集合

String[] arr1=new String[]{"A","B","C","D","E","F"};
//方法1
Set<String> set = new HashSet<String>();
for(int i = 0; i < arr1.length; i++) {
    set.add(arr1[i]);
}
System.out.println(set.toString());
//方法2
Set<String> set2 = new HashSet<String>(Arrays.asList(arr1));
System.out.println(set2.toString());

* 判断数组中是否包含某特定元素

Integer a[]={1, 5, 3, 8, 4};
//方法1
boolean b = Arrays.asList(a).contains(Integer.valueOf(6));
System.out.println(b);
//方法2
Arrays.sort(a);
System.out.println(Arrays.binarySearch(a, Integer.valueOf(4)));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值