原创

java Collections集合工具的测试

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://twjitm.blog.csdn.net/article/details/72956304
package com.test;

import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Deque;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.WeakHashMap;

import org.w3c.dom.ls.LSInput;

/**
 * java 集合工具的测试
 * @author twjitm
 *
 */
public class CollectionsTest {
    @SuppressWarnings("unchecked")
    public static  void main(String[] args) {
        List list = Collections.EMPTY_LIST;//获取一个空集合null
        List emptlist = new ArrayList();
        emptlist.add("2");
        emptlist.add("1");
        emptlist.add("1");
        emptlist.add("1");
        emptlist.add("1");
        emptlist.add("e");
        emptlist.add(1);
        List list1=new ArrayList();
        list1.add("1");
        list1.add("e");
        list1.add(1);
        Test1 test=new Test1();
        test.setName("1111");
        list1.add(test);
        if(list1.equals(list)){
            System.out.println("111");
        }
        Deque<String> deque=new  ArrayDeque<String>();//双端对列
        deque.add("eeee");
        deque.add("曲项向天歌");
        Queue<String> queue = Collections.asLifoQueue(deque);
        System.out.println(queue.toString());
        int result = Collections.binarySearch(list1,"e");//查找,返回位置
        System.out.println(result);
        Collection result1 = Collections.checkedCollection(list1, String.class);
        System.out.println(result1.toString());
        boolean success= Collections.disjoint(emptlist, list1);
        //两个集合是否有相同的元素若是存在相同的元素为false,
        //没有相同的为true
        System.out.println(success);
        Collections.fill(list1, "TB");//修改了变量的存储地址
        System.out.println(list1.toString());
        int num= Collections.frequency(emptlist, "1");//方法用于获取所指定元素集合等于指定对象(类对象)中的数量。
        System.out.println(num);
        Collections.lastIndexOfSubList(emptlist, list1);//方法用于获取指定源列表中指定的目标列表中最后一次出现的起始位置.

        List<String> ncop = Collections.nCopies(5, "twjitm");//用于返回一个不可变列表组成的n个拷贝的指定对象。(可用于初始化一个指定类型的集合)
        Iterator itr = ncop.iterator();
        System.out.println("初始化的值 是 :");
        while (itr.hasNext()){
            System.out.println(itr.next());
        }
        Map weakmap = new  WeakHashMap<>();
        //              weakmap.put("twj", true);//不能赋值
        //              weakmap.put("itm", false);
        // 方法用于返回一组由指定映射支持将objmap中的元素映射到weakmap中
        Set<Object> ojcmap = Collections.newSetFromMap(weakmap);
        ojcmap.add("java");
        ojcmap.add("JAVA");
        System.out.println(ojcmap);
        System.out.println(weakmap);
        //---------
        List revelist=new ArrayList();
        revelist.add("twjitm");
        revelist.add("github");
        revelist.add("git");
        revelist.add("csnd");
        Collections.reverse(revelist);//倒置一个集合;
        System.out.println(revelist);
        Collections.shuffle(revelist);//随机打乱一个集合
        System.out.println(revelist);
        Set<Test1> testset = Collections.singleton(new Test1());//单例模式产生一个集合
        System.out.println(testset);
        List rotalist=new ArrayList();
        rotalist.add("1");
        rotalist.add("2");
        rotalist.add("4");
        rotalist.add("5");
        Collections.rotate(rotalist, 1);
        System.out.println(rotalist);

        Collection<?> rotalist1 = Collections.unmodifiableCollection(rotalist);
        //将rotalist深拷贝到rotalist1中,当rotalist改变的时候,rotalist也会随之改变了。
        rotalist.add("cccc");
        System.out.println(rotalist);
        System.out.println(rotalist1);
        List synlist=new ArrayList();
        synlist.add("123");
        synlist.add("456");
        synlist.add("789");
        synlist.add("321");
        /**
         * 任何synchronized收集实现最可能的做法是确保每个单独的方法调用是同步的。
         * 但迭代必然涉及多个单独的方法调用,因此您同步集合的用户必须在整个迭代中进行同步。
         * ConcurrentHashMap
         */
        Collection<?> synlist1 = Collections.synchronizedCollection(synlist);
        synchronized(synlist1){
            Iterator<?> iterator=synlist1.iterator();
            while (iterator.hasNext()) {
                   System.out.println(iterator.next());
                   testsynchronizedCollection(iterator.next());
            }
        }



    }

public static void testsynchronizedCollection(Object obj){
    System.out.println("testsynchronizedCollection="+String.valueOf(obj));

}

    public static class Test1 {
        public Test1() {
        }
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
}
文章最后发布于: 2017-06-09 12:08:36
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览