JAVA基础知识点(十六)--集合和数组中的工具类

一、Collections常见方法

1, 对list进行二分查找:

前提该集合一定要有序。

int binarySearch(list,key);

//必须根据元素自然顺序对列表进行升级排序

//要求list 集合中的元素都是Comparable 的子类。

intbinarySearch(list,key,Comparator);

2、对list集合进行排序。

sort(list);

//对list进行排序,其实使用的事list容器中的对象的compareTo方法

sort(list,comaprator);

//按照指定比较器进行排序

3、对集合取最大值或者最小值。

max(Collection)

max(Collection,comparator)

min(Collection)

min(Collection,comparator)
4、对list集合进行反转。

reverse(list);

5可以将不同步的集合变成同步的集合。

Set synchronizedSet(Set<T>s)

Map synchronizedMap(Map<K,V>m)

ListsynchronizedList(List<T> list)


二、Arrays:用于对数组操作的工具类

1,二分查找,数组需要有序

binarySearch(int[])

binarySearch(double[])

2,数组排序

sort(int[])

sort(char[])……

2,将数组变成字符串。

 toString(int[])

3,复制数组。
 copyOf();

4,复制部分数组。

copyOfRange():

5,比较两个数组是否相同。

equals(int[],int[]);

6,将数组变成集合。

List asList(T[]);

这样可以通过集合的操作来操作数组中元素,

但是不可以使用增删方法,add,remove。因为数组长度是固定的,会出现

UnsupportOperationExcetion。

可以使用的方法:contains,indexOf。。。

如果数组中存入的基本数据类型,那么asList会将数组实体作为集合中的元素。

如果数组中的存入的引用数据类型,那么asList会将数组中的元素作为集合中

的元素。

 

import java.util.ArrayList;

import java.util.Collections;

import java.util.Arrays;

import java.util.List;

class Demo1

{

    public static void main(String[] args)

    {

       ArrayList<Integer> list = new ArrayList<Integer>();

       list.add(4);

       list.add(3);

       list.add(1);

       list.add(2);

       list.add(3);

       // 排序

       Collections.sort(list);

       // 折半查找的前提是排序好的元素

       System.out.println( Collections.binarySearch( list , 8 ));  // 找不到返回-插入点-1

       // 反序集合输出

       Collections.reverse( list );

       System.out.println( list );

       // 求最值

       System.out.println( Collections.max( list ) );   // 4

       // fill()  使用指定的元素替换指定集合中的所有元素

       // Collections.fill( list, 5);

       System.out.println( list );

       // 将数组转换为集合

       Integer is[] = new  Integer[]{6,7,8};

       List<Integer> list2 = Arrays.asList(is);

       list.addAll( list2 );

       System.out.println( list );

       // List转换为数组

       Object [] ins = list.toArray();

       System.out.println( Arrays.toString( ins ) );

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值