博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Collections
阅读量:4596 次
发布时间:2019-06-09

本文共 8106 字,大约阅读时间需要 27 分钟。

package Collection;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.Hashtable;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Queue;import java.util.Random;import java.util.Set;import java.util.Stack;import java.util.TreeMap;import java.util.TreeSet;/* * |Collection |  ├List |  │-├LinkedList |  │-├ArrayList |  │-└Vector |  │ └Stack |  ├Set |  │├HashSet |  │├TreeSet |  │└LinkedSet | |Map   ├Hashtable   ├HashMap   └WeakHashMap */public class App {    public static void main(String[] args) throws Exception {        // TODO Auto-generated method stub//        test1();//        test2();        test13();    }            /**     * 遍历     * @author SiyyaWu     * @param collection     */    public static void traversal(Collection
collection){ for(Object i:collection){ System.out.println(i); } } interface Callback{ void execute(); } public static void testTime(Callback callBack){ long begin = System.nanoTime();//测试起始时间 callBack.execute();//进行回调操作 long end = System.nanoTime();//测试结束时间 System.out.println("[use time]:" + (end - begin));//打印使用时间 } /** * ArrayList * @author SiyyaWu */ public static void test1() throws Exception{ //随机// List
list=new ArrayList<>();// for(int i=0;i<10;i++){// list.add(new Random().nextInt(100));// } //排序// Collections.sort(list); // traversal(list); List
list2=new ArrayList<>(); for(int i=0;i<10;i++){ list2.add(i); } //查找// System.out.println("查找第2个元素"+list2.get(2)); // System.out.println("查找第一个等于2的元素的位置"+list2.indexOf(2)); //初始化(三种初始化方式)// List
list3=new ArrayList<>(list2); // List
list4=new ArrayList<>(20);// List
list5=new ArrayList<>();// traversal(list3); //截取// List
list6=new ArrayList<>(list2);// List
listtemp=list6.subList(1, 3);// traversal(listtemp); //查找// List
list7=list2.subList(3, 5);// System.out.println(list2.contains(6));// System.out.println(list2.containsAll(list7)); //测试插入时间// List
listTestTime=new ArrayList<>();// for(int i=0;i<1000000;i++){// listTestTime.add(new Random().nextInt(10000000));// }// testTime(new Callback() {//// @Override// public void execute() {// // TODO Auto-generated method stub// for(int i=0;i<1000;i++){// listTestTime.add(new Random().nextInt(100), new Random().nextInt(1000000));// }// }// // }); List
listtemp=new ArrayList
(); listtemp.add(new Pet(1, "admin")); listtemp.add(new Pet(2, "b")); listtemp.add(new Pet(3, "c")); listtemp.add(new Pet(4, "d")); Collections.sort(listtemp); traversal(listtemp); } /** * LinkedList * @author SiyyaWu */ public static void test2(){ //测试插入时间// List
list=new LinkedList<>();// for(int i=0;i<1000000;i++){// list.add(i);// }// testTime(new Callback() {// // @Override// public void execute() {// // TODO Auto-generated method stub// for(int i=0;i<1000;i++){// list.add(new Random().nextInt(100), new Random().nextInt(1000000));// }// }// // }); List
list2=new LinkedList<>(); for(int i=0;i<10;i++){ list2.add(i); } Iterator
it=list2.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } /* * LinkedList模拟栈 */ public static void test3(){ List
list=new LinkedList<>(); for(int i=0;i<10;i++){ list.add(i); } ((LinkedList
)list).addFirst(90); ((LinkedList
)list).addLast(91); System.out.println(((LinkedList
)list).removeFirst()); System.out.println(((LinkedList
)list).removeLast()); System.out.println(((LinkedList
)list).getFirst()); System.out.println(((LinkedList
)list).getLast()); for(Integer i:list){ System.out.println(i); } } /** * Stack * @author SiyyaWu */ public static void test4(){ //peek pop区别 Stack
stack=new Stack<>(); stack.push(1); stack.push(2); stack.push(3); stack.push(4); stack.push(5); stack.push(6); stack.push(7); traversal(stack); System.out.println(stack.peek()); traversal(stack); } /** * Queue * @author SiyyaWu */ public static void test5() throws Exception{ //peek poll 的区别 Queue
queue=new LinkedList<>(); queue.add(1); queue.add(2); queue.add(3); queue.add(4); queue.add(5); queue.add(6); queue.add(7); traversal(queue); System.out.println("----"); System.out.println(queue.peek()); System.out.println("----"); traversal(queue); } /** * HashSet * @author SiyyaWu */ public static void test6(){ //测试HashSet// Set
set=new HashSet<>();// set.add(1);// set.add(2);// set.add(3);// set.add(4);// set.add(4);// traversal(set);// set.remove(2);// traversal(set); //测试equals和hashCode Set
set2=new HashSet<>(); Pet pet1=new Pet(1, "A"); Pet pet2=new Pet(1, "A");// System.out.println(pet1.hashCode());// System.out.println(pet2.hashCode()); //==等于Object的equals方法,调用HashCode// System.out.println(pet1==pet2); //重写了equals方法,令pet1等于pet2// System.out.println(pet1.equals(pet2)); //添加到HashSet中,仍然插入两条记录.当重写HashCode方法后,只插入一条数据 set2.add(pet1); set2.add(pet2); traversal(set2); } /** * treeSets * @author SiyyaWu */ public static void test7(){ Set
set=new TreeSet<>(); for(int i=0;i<10;i++){ set.add(new Random().nextInt(100)); } Iterator
it=set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } /** * HashMap遍历方式一 * @author SiyyaWu */ public static void test8(){ Map
map=new HashMap
(); map.put("admin", 1); map.put("b", 2); for(Entry
entry:map.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue()); } } /** * HashMap遍历方式二 * @author SiyyaWu */ public static void test9(){ Map
map=new HashMap
(); map.put("admin", 1); map.put("b", 2); Iterator
> iterator=map.entrySet().iterator(); while(iterator.hasNext()){ Map.Entry
entry=iterator.next(); System.out.println(entry.getKey()+":"+entry.getValue()); } } /** * HashMap的遍历方式三 * @author SiyyaWu */ public static void test10(){ Map
map=new HashMap
(); map.put("admin", 1); map.put("b", 2); for(String key:map.keySet()){ System.out.println(key+":"+map.get(key)); } } /** * HashMap的遍历方式四 * @author SiyyaWu */ public static void test11(){ Map
map=new HashMap
(); map.put("admin", 1); map.put("b", 2); Set
> entrySet=map.entrySet(); for(Entry
entry:entrySet){ System.out.println(entry.getKey()+":"+entry.getValue()); } } /** * HashMap的key不能相同,则要重写Key的hashcode方法 * @author SiyyaWu */ public static void test12(){ Map
map=new HashMap
(); map.put(new Pet(1, "admin"), 100); map.put(new Pet(1, "admin"), 200); for(Entry
entry:map.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue()); } } /** * TreeMap * @author SiyyaWu */ public static void test13(){ Map
treeMap=new TreeMap<>(); treeMap.put("m", 1); treeMap.put("r", 2); treeMap.put("c", 20); for(Entry
entry:treeMap.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue()); } } /** * HashTable 不允许存储null的key和value * @author SiyyaWu */ public static void test14(){ Map
map=new Hashtable<>(); map.put("String", null); }}class Pet implements Comparable
{ private int id; private String name; public Pet(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object o) { // TODO Auto-generated method stub if(o instanceof Pet){ Pet pet=(Pet)o; return this.id==pet.getId(); } return false; } @Override public int compareTo(Pet o) { // TODO Auto-generated method stub if(this.id>o.id){ return 1; }else if (this.id==o.id) { return 0; } else{ return -1; } } @Override public String toString() { return "Pet [id=" + id + ", name=" + name + "]"; } @Override public int hashCode() { // TODO Auto-generated method stub return name.toUpperCase().hashCode()^id; }}

 

转载于:https://www.cnblogs.com/siyyawu/p/11001216.html

你可能感兴趣的文章
Simplified English v.s. Vocabulary Bank for ESL
查看>>
wordpress 搭建安装教程 2 安装Apache
查看>>
【清华集训2014】Sum
查看>>
SQL注入漏洞测试工具比较
查看>>
采用smarty开发的小论坛的学习总结
查看>>
Flexible 弹性盒子模型之CSS flex-direction
查看>>
linux的nohup命令的用法
查看>>
Xilinx ISE中使用Synplify综合报错的原因之二
查看>>
Delegate辅助绘制
查看>>
"__BuglySetUserId", referenced from:---bugly 错误
查看>>
variable_scope
查看>>
Java多线程(二)线程的生命周期、优先级和控制
查看>>
cmd 一键获取 所有连接过的wifi 密码
查看>>
TOJ 2452 Ultra-QuickSort
查看>>
ZOJ 2067 White Rectangles
查看>>
windows基础应用(word)
查看>>
Linux索引节点(Inode)用满导致空间不足
查看>>
【Android】Notification
查看>>
(转)数据库 schema含义
查看>>
E2E测试神器nightwatch.js使用
查看>>