java集合框架之集合工具类Arrays类

1.Arrays类:

 在Collection接口中有一个方法叫toArray把集合转换为Object数组.
 把集合转换为数组:  Object[] arr = 集合对象.toArray();
 数组也可以转换为集合(List集合):
 public static <T> List<T> asList(T... a) 等价于public static <T> List<T> asList(T[] a).
import java.util.Arrays;
import java.util.List;

public class SetDemo8 {
	public static void main(String[] args) {
		List<String> list = Arrays.asList("a","b","c");
		System.out.println(list);//[a, b, c]
		
		List<Integer> list2 = Arrays.asList(1,2,3,4);//自动装箱
		System.out.println(list2);//[1, 2, 3, 4]
		
		int[] arr ={1,2,3,4};	
		List<int[]> list3 = Arrays.asList(arr);//直接把数组当做对象
		System.out.println(list3);//[[I@3a5476a7]
	}
}

 通过Arrays.asList方法得到的List对象的长度是固定的,不能增,也不能减.

import java.util.Arrays;
import java.util.List;

public class SetDemo8 {
	public static void main(String[] args) {
		List<String> list = Arrays.asList("a","b","c");
		System.out.println(list);//[a, b, c]
		//list.remove(0);//报错 java.lang.UnsupportedOperationException
		//list.add("d");//报错 java.lang.UnsupportedOperationException
	}
}

 为什么: asList方法返回的ArrayList对象,不是java.util.ArrayList而是Arrays类中的内部类对象.看源码,可以得知返回的ArrayList对象是Arrays类中的内部类对象.


2.其他方法

int binarySearch(type[] arr,type key) 使用二分法查找数组里某元素并返回其索引,若找不到返回负数.


void sort(type[] arr) 使用调优后的快速法对指定数组排序。


String toString(type[] arr) 返回指定数组内容的字符串表示形式。


public static type[] copyOf(type[] original, int newLength) 复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度

 

class ArraysDemo   
{  
    public static void main(String[] args)   
    {  
        int[] arr = {1,5,6,89,54,3,456,3234};  
          
        //数组打印  
        System.out.println(java.util.Arrays.toString(arr));  
          
        //数组排序  
        java.util.Arrays.sort(arr);  
          
        //排序后打印  
        System.out.println(java.util.Arrays.toString(arr));  
          
        //二分法查找指定元素在数组中的索引(注意:该数组必须是有序的)  
        int index=java.util.Arrays.binarySearch(arr,456);  
        System.out.println(index);  
          
        //数组的复制  
        int[] arr2 = java.util.Arrays.copyOf(arr,4);  
        //复制后打印该新的数组  
        System.out.println(java.util.Arrays.toString(arr2));  
    }  
} 

.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值