Collections(注意比Collention多了一个s)类;练习题。

1、操作集合(Collection以及Map)的工具类:Collections

2 面试题:区分CollectionCollections

一、

 

Collections的排序操作:

      reverse(List):反转List中元素的顺序

      shuffle(List):List中的元素进行随机排序

      sort(List):根据元素的自然顺序对指定List集合元素按升序排序

      sort(List,Comparator):根据指定的Comparator产生的顺序对List集合进行排序(需要造一个Comparator对象)

      swap(List,int,int):指定List集合中的i处元素和j处元素进行交换

 

代码解析:

package Collections;



import java.util.ArrayList;

import java.util.List;



import org.junit.Test;



/*

 * 操作集合(Collection以及Map)的工具类:Collections

 *

 * 面试题:区分Collection与Collections

 * */

public class TestCollections {

    /*

     * reverse(List):反转List中元素的顺序

     * shuffle(List):对List中的元素进行随机排序

     * sort(List):根据元素的自然顺序对指定List集合元素按升序排序

     * sort(List,Comparator):根据指定的Comparator产生的顺序对List集合进行排序

     * swap(List,int,int):指定List集合中的i处元素和j处元素进行交换

     *

     *

     * */

    @Test

    public void testCollections1() {

        List list=new ArrayList();

        list.add(123);

        list.add("ss");

        list.add(456);

        list.add("TT");

        System.out.println(list);//反转

        Colletions.reverse(list);

       

    }

}

 

二、

 

 

public class TestCollections {

    @Test

    public void testCollections2() {

        List list=new ArrayList();

        list.add(123);

        list.add(21);

        list.add(456);

        list.add(12);

        Object obj=Collections.max(list);

        System.out.println(obj);

        int count=Collections.frequency(list, 456);//frequency:指定小括号中第二个元素在第一个几何中的出现次数

        System.out.println(count);

        //实现List的复制

//      List list1=new ArrayList();//错误的实现方式:因为新建的list1的长度为0,而list的长度为4

        //正确的写法

        List list1=Arrays.asList(new Object[list.size()]);//造一个list1长度为list集合的长度。

        Collections.copy(list1, list);

        System.out.println(list1);

    }

}

 

三、同步控制(线程安全与不安全)

 

1、

List list=new ArrayList();//使用ArrayList导致线程不安全(当有多个线程操作这个时,可能会出现问题)

线程安全的写法:

        List list2=Collections.synchronizedList(list);

2、代码:

    @Test

    public void testCollections2() {

        List list=new ArrayList(); //线程不安全

        list.add(123);

        list.add(21);

        list.add(456);

        list.add(12);

        Object obj=Collections.max(list);

        System.out.println(obj);

        int count=Collections.frequency(list, 456);//frequency:指定小括号中第二个元素在第一个几何中的出现次数

        System.out.println(count);

        //实现List的复制

//      List list1=new ArrayList();//错误的实现方式:因为新建的list1的长度为0,而list的长度为4

        //正确的写法

        List list1=Arrays.asList(new Object[list.size()]);//造一个list1长度为list集合的长度。

        Collections.copy(list1, list);

        System.out.println(list1);

        System.out.println("%   %");

        //线程安全的写法

        List list2=Collections.synchronizedList(list);

        System.out.println(list2);

       

    }

 

四、Enumeration迭代器:

Enumeration现在用Iterator:①、Enumeration中的hasMoreElements( )用Iterator中的hasNext( )代替;nextElements( )用next( )代替。

 

实例代码:

结果:

 

五、练习题:

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值