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;
}
}
}
java Collections集合工具的测试
最新推荐文章于 2022-10-20 16:29:50 发布