Collections 操作Collection、Map的工具类


分类: Java
评论: 0

Collections 操作Collection、Map的工具类



分类: Java
评论: 0

常用方法

Collections 类中提供了多个 synchronizedXxx() 方法,该方法可使将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题

实例1:返回的list1即为线程安全的List

List list1 = Collections.synchronizedList(list);

实例2:

package com.atguigu.java;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class CollectionsTest {

    @Test
    public void test2() {
        List list = new ArrayList();
        list.add(123);
        list.add(43);
        list.add(765);
        list.add(-97);
        list.add(0);

        // 报异常:IndexOutOfBoundsException("Source does not fit in dest")
	// List dest = new ArrayList();
	// Collections.copy(dest,list);
        //正确的:
        List dest = Arrays.asList(new Object[list.size()]);
        System.out.println(dest.size());//list.size();
        Collections.copy(dest, list);

        System.out.println(dest);
    }

    @Test
    public void test1() {
        List list = new ArrayList();
        list.add(123);
        list.add(43);
        list.add(765);
        list.add(765);
        list.add(765);
        list.add(-97);
        list.add(0);

        System.out.println(list);

	// Collections.reverse(list);
	// Collections.shuffle(list);
	// Collections.sort(list);
	// Collections.swap(list,1,2);

        int frequency = Collections.frequency(list, 123);
        System.out.println(list);
        System.out.println(frequency);
    }
}

面试题

Collection 和 Collections的区别?