import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import cn.domain.User;
public class UList {
/**
*
* list排序:Collections.sort(list, new NameComparator());
* list混洗:Collections.shuffle(list);
*
* Set 调用了User的hashcode()
* HashSet 无序
* TreeSet 有序 ,User 实现Comparable接口
* LinkedHashSet: 插入的顺序
*
* Map 调用了key: User的hashcode()
* HashMap: 无序
* TreeMap: 按键排序 User实现Comparable
* WeakHashMap: 无序
*
* treemap add:17 size:10000
* hashmap add:13 size:10000
* treemap add:14 size:10000
*
* hashset add:13 size:10000
* treeset add:19 size:10000
* linkedhashset add:15 size:10000
*
* arraylist add:2 size:10000 插入2毫秒 数组实现
arraylist delete:16 size:0 删除16毫秒
*
* linkedlist add:2 size:10000 插入2毫秒 单链表
linkedlist delete:3 size:0 删除3毫秒
*
*
*/
public static void main(String[] args) {
// String[] names =new String[]{"a","b","c"};
// List<User> list =new ArrayList<User>();
// long start=System.currentTimeMillis();
// int len =10000;
// for(int i=0;i<len;i++){
// list.add(new User(i+"","" + i));
// }
// long end=System.currentTimeMillis();
// System.out.println("arraylist add:"+(end-start)+" size:"+list.size());
// for(int i=0;i<len;i++){
// list.remove(0);
// }
//list.removeAll(list);
//list.clear();
//print(list);
//Collections.sort(list, new NameComparator());
//Collections.shuffle(list);
// print(list);
// start=System.currentTimeMillis();
// System.out.println("arraylist add:"+(start-end)+" size:"+list.size());
//Set<User> set =new HashSet<User>();//Set 调用了User的hashcode()
//Set<User> set =new TreeSet<User>();
Set<User> set =new LinkedHashSet<User>();
long start=System.currentTimeMillis();
int len =10000;
for(int i=0;i<len;i++){
set.add(new User(i+"","" + i));
}
long end=System.currentTimeMillis();
//printSet(set);
//set = Collections.unmodifiableSet(set);
System.out.println("arraylist add:"+(end-start)+" size:"+set.size());
//printSet(set);
//Map<String,User> map =new HashMap<String,User>();
//Map<String,User> map =new TreeMap<String,User>();
/*Map<String,User> map =new WeakHashMap<String,User>();
long start=System.currentTimeMillis();
int len =10;
for(int i=0;i<len;i++){
map.put(""+i, new User(i+"","" + i));
}
long end=System.currentTimeMillis();
printMap(map);
System.out.println("arraylist add:"+(end-start)+" size:"+map.size());
*/
//Map<User,Object> map =new HashMap<User,Object>();
//Map<User,Object> map =new TreeMap<User,Object>();
/*Map<User,Object> map =new WeakHashMap<User,Object>();
long start=System.currentTimeMillis();
int len =10000;
for(int i=0;i<len;i++){
map.put(new User(i+"","" + i),null);
}
long end=System.currentTimeMillis();
//printMap2(map);
System.out.println("treemap add:"+(end-start)+" size:"+map.size());
*/
}
static class NameComparator implements Comparator{
public int compare(Object o1, Object o2) {
if(!(o1 instanceof User)){
return 0;
}
if(!(o2 instanceof User)){
return 0;
}
User u1 =(User)o1;
User u2 = (User)o2;
String name1 = u1.getUserName();
String name2 = u2.getUserName();
return name1.compareTo(name2);
}
}
static void print(List<User> list){
User u=null;
for(int i=0;i<10;i++){
u = list.get(i);
System.out.println("id: "+ u.getUserId() +" name:"+u.getUserName());
}
}
static void printSet(Set<User> set){
User u=null;
Iterator<User> it = set.iterator();
int i=0;
while(it.hasNext()){
if(i>10)
break;
u = it.next();
System.out.println("id: "+ u.getUserId() +" name:"+u.getUserName());
i++;
}
}
static void printMap(Map<String,User> map){
Entry<String,User> u=null;
Set<Entry<String,User>> set =map.entrySet();
Iterator<Entry<String,User>> it = set.iterator();
int i=0;
while(it.hasNext()){
if(i>10)
break;
u = it.next();
System.out.println("key: "+ u.getKey() +" user:"+u.getValue().getUserName());
i++;
}
}
static void printMap2(Map<User,Object> map){
Entry<User,Object> u=null;
Set<Entry<User,Object>> set =map.entrySet();
Iterator<Entry<User,Object>> it = set.iterator();
int i=0;
while(it.hasNext()){
if(i>10)
break;
u = it.next();
System.out.println("key: "+ u.getKey().getUserName() +" val:"+u.getValue());
i++;
}
}
}
相关推荐
java集合类list-set-map.doc
Java集合Collection、List、Set、Map使用详解
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、remove、contains 等。Collection 接口没有实现类,因此需要通过其子接口来实现。 Set 是一个...
详细描述map、list、set的常用子类特性,各个场景的适用。
Java集合框架主要包括以下几种容器: - **Collection**:这是所有单列集合的根接口,包括List、Set等。 - **Set**:这是一个不允许重复元素的集合。 - **List**:这是一个有序的集合,允许重复元素,并且可以通过...
在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中最常用的是`Set`、`Map`和`List`。这三种集合类型各自具有独特的特性和用途,理解它们之间的区别与联系对于有效地使用Java进行数据管理至关重要...
"Java集合Collection、List、Set、Map使用详解" Java集合是Java编程语言中最基本也是最重要的一部分。能够正确地使用集合类和理解集合的实现原理对于Java程序的开发具有无比的好处。本文将详细解释Java集合的实现...
Java 集合类 List-Set-Map 的区别和联系 Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的...
理解并熟练运用Java集合体系中的List、Set、Map接口及其实现类,对于日常开发和面试来说至关重要,因为它们是许多Java框架和库的基础。在实际项目中,根据需求选择合适的集合类型可以提高代码的效率和可维护性。在...
根据给定文件的信息,我们可以详细地探讨一下Java中几种主要的集合容器——List、Set以及Map的区别,并且深入了解它们各自的特性和应用场景。 ### 一、List #### 1. ArrayList - **特点**:`ArrayList`是基于动态...
本文将深入探讨Java集合框架中的四个主要接口:Collection、List、Set和Map,以及它们的实现原理。 ### 集合框架概述 集合框架是Java API中用于存储和管理对象的统一框架。它为数据结构提供了抽象接口,使得程序员...
Java集合排序及java集合类详解(Collection、List、Map、Set).doc
本文深入探讨了 Java 集合框架中的 List、Set 和 Map 三种集合类型,包括它们的特点、实现以及使用示例。通过对比分析,明确了它们之间的区别和适用场景。希望本文能够帮助你在实际开发中更好地利用 Java 集合框架,...
本文将深入解析Java集合中的Collection、List、Set和Map,包括它们的使用方法、实现原理以及如何进行排序。 ### 集合框架概述 1.1.1 容器简介 容器是Java集合框架的基础,它是一个可以存储多个对象的容器,提供了...
Java集合排序及java集合类详解(Collection、List、Map、Set)讲解 Java集合框架是Java语言中最重要的组件之一,能够正确使用Java集合框架对于Java程序的开发具有无比的好处。本文将详细解释Java集合框架的实现原理、...
Java集合框架主要包括Collection、List、Set、Map四个接口,它们分别实现了不同的数据结构。 Collection接口是Java集合框架的顶层接口,它定义了基本的集合操作,如add、remove、contains等。Collection接口有两个...
### JAVA集合(List, Set, Map)详解 #### 集合框架概述 Java集合框架是Java编程语言中处理数据组织的核心部分。它提供了一系列接口、抽象类和具体实现类,帮助开发者有效地管理对象集合。本篇文章将深入探讨集合框架...
### Java集合排序及java集合类详解(Collection、List、Map、Set) #### 集合框架概述 ##### 容器简介 在Java编程中,容器(Container)是指用来存储和管理对象的一种数据结构。随着应用程序复杂度的增加,简单地...