java Collections集合工具的测试

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;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值