hasSet,TreeSet,ArrayList,LinkedList,Vector,HashMap,HashTable,TreeMap利用Iterator进行输出
基础类,没有重写hashCode()和equals()方法:
package niukewang; import java.util.Objects; public class setClass { String a;
String b;
public setClass(String a, String b)
{
this.a=a;
this.b=b;
} }
测试类:
package niukewang; import java.util.ArrayList;
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.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector; public class test1 { public static void main(String args[])
{
setClass s1=new setClass("http://www.yjbys.com/", "");
setClass s2=new setClass("http://www.yjbys.com1/", "");
setClass s3=new setClass("http://www.yjbys.com2/", "");
setClass s4=new setClass("http://www.yjbys.com2/", ""); //hasSet
System.out.println("hasSet......");
Set<setClass> set=new HashSet<setClass>();
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
Iterator it= set.iterator();
while(it.hasNext())
{
setClass ob=(setClass)it.next();
System.out.println(ob.a);
} /* //TreeSet
System.out.println("\nTreeSet........");
Set<setClass> tree=new TreeSet<setClass>();
tree.add(s1);
tree.add(s2);
tree.add(s3);
tree.add(s4);
Iterator treeit=tree.iterator();
while(treeit.hasNext())
{
setClass ob=(setClass) treeit.next();
System.out.println(ob.a);
}
*/
//TreeMap
/* System.out.println("\nTreeMap.........");
Map<setClass,String> treemap=new TreeMap<setClass,String>();
treemap.put(s1, "TreeMap one");
treemap.put(s2, "TreeMap two");
treemap.put(s3, "TreeMap three");
treemap.put(s4, "TreeMap four");
for(Map.Entry<setClass, String> entry: treemap.entrySet())
{
System.out.println("The treemap key is "+entry.getKey().a+" The value is "+ entry.getValue());
}*/ //HasMap
System.out.println("\nHashMap......");
Map<setClass,String> hashmap=new HashMap<setClass, String>();
hashmap.put(s1, "HashMap one");
hashmap.put(s2, "HashMap two");
hashmap.put(s3, "HashMap three");
hashmap.put(s4, "HashMap four");
for(Map.Entry<setClass, String> entry : hashmap.entrySet())
{
System.out.println("The key is "+entry.getKey().a+" The value is "+entry.getValue());
} //HasTable
System.out.println("\nHashTable......");
Map<setClass,String> hashtable=new Hashtable<setClass, String>();
hashtable.put(s1, "HashTable one");
hashtable.put(s2, "HashTable two");
hashtable.put(s3, "HashTable three");
hashtable.put(s4, "HashTable four");
for(Map.Entry<setClass, String> entry: hashtable.entrySet())
{
System.out.println("The HashTable key is "+entry.getKey().a+" The HashTable value is "+entry.getValue());
} //LinkedList
System.out.println("\nLinkedList.....");
List list=new LinkedList();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
Iterator listit=list.iterator();
while(listit.hasNext())
{
setClass ob=(setClass)listit.next();
System.out.println(ob.a);
} //ArrayList
System.out.println("\nArrayList.....");
List array=new ArrayList();
array.add(s1);
array.add(s2);
array.add(s3);
array.add(s4);
Iterator arrayit=array.iterator();
while(arrayit.hasNext())
{
setClass ob=(setClass)arrayit.next();
System.out.println(ob.a);
} //vector
System.out.println("\nvector.....");
Vector v=new Vector();
v.add(s1);
v.add(s2);
v.add(s3);
v.add(s4);
Iterator vit=v.iterator();
while(vit.hasNext())
{
setClass ob=(setClass)vit.next();
System.out.println(ob.a);
} }
}
输出结果:
由于没有重写hasCode和equals方法,所以s3和s4对象认为是不相同的,因此在set中被看成了不同的对象;同理,在hashMap和hashTable中,其根据hashCode的值对数据进行存储的,所以,hashcode的值不一样,因此也存储了4个数。
hasSet......
http://www.yjbys.com1/
http://www.yjbys.com2/
http://www.yjbys.com/
http://www.yjbys.com2/ HashMap......
The key is http://www.yjbys.com1/ The value is HashMap two
The key is http://www.yjbys.com2/ The value is HashMap four
The key is http://www.yjbys.com/ The value is HashMap one
The key is http://www.yjbys.com2/ The value is HashMap three HashTable......
The HashTable key is http://www.yjbys.com2/ The HashTable value is HashTable four
The HashTable key is http://www.yjbys.com2/ The HashTable value is HashTable three
The HashTable key is http://www.yjbys.com1/ The HashTable value is HashTable two
The HashTable key is http://www.yjbys.com/ The HashTable value is HashTable one LinkedList.....
http://www.yjbys.com/
http://www.yjbys.com1/
http://www.yjbys.com2/
http://www.yjbys.com2/ ArrayList.....
http://www.yjbys.com/
http://www.yjbys.com1/
http://www.yjbys.com2/
http://www.yjbys.com2/ vector.....
http://www.yjbys.com/
http://www.yjbys.com1/
http://www.yjbys.com2/
http://www.yjbys.com2/
改变之后的。
基础类:
package niukewang; import java.util.Objects; public class setClass { String a;
String b;
public setClass(String a, String b)
{
this.a=a;
this.b=b;
} public int hashCode() {
return a.hashCode();
} public boolean equals(Object obj)
{
if(obj==null) return false; if(getClass() != obj.getClass()) return false; final setClass s=(setClass)obj; return Objects.equals(this.a, s.a);
}
}
测试类:
package niukewang; import java.util.ArrayList;
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.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector; public class test1 { public static void main(String args[])
{
setClass s1=new setClass("http://www.yjbys.com/", "");
setClass s2=new setClass("http://www.yjbys.com1/", "");
setClass s3=new setClass("http://www.yjbys.com2/", "");
setClass s4=new setClass("http://www.yjbys.com2/", ""); //hasSet
System.out.println("hasSet......");
Set<setClass> set=new HashSet<setClass>();
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
Iterator it= set.iterator();
while(it.hasNext())
{
setClass ob=(setClass)it.next();
System.out.println(ob.a);
} /* //TreeSet
System.out.println("\nTreeSet........");
Set<setClass> tree=new TreeSet<setClass>();
tree.add(s1);
tree.add(s2);
tree.add(s3);
tree.add(s4);
Iterator treeit=tree.iterator();
while(treeit.hasNext())
{
setClass ob=(setClass) treeit.next();
System.out.println(ob.a);
}
*/
//TreeMap
/* System.out.println("\nTreeMap.........");
Map<setClass,String> treemap=new TreeMap<setClass,String>();
treemap.put(s1, "TreeMap one");
treemap.put(s2, "TreeMap two");
treemap.put(s3, "TreeMap three");
treemap.put(s4, "TreeMap four");
for(Map.Entry<setClass, String> entry: treemap.entrySet())
{
System.out.println("The treemap key is "+entry.getKey().a+" The value is "+ entry.getValue());
}*/ //HasMap
System.out.println("\nHashMap......");
Map<setClass,String> hashmap=new HashMap<setClass, String>();
hashmap.put(s1, "HashMap one");
hashmap.put(s2, "HashMap two");
hashmap.put(s3, "HashMap three");
hashmap.put(s4, "HashMap four");
for(Map.Entry<setClass, String> entry : hashmap.entrySet())
{
System.out.println("The key is "+entry.getKey().a+" The value is "+entry.getValue());
} //HasTable
System.out.println("\nHashTable......");
Map<setClass,String> hashtable=new Hashtable<setClass, String>();
hashtable.put(s1, "HashTable one");
hashtable.put(s2, "HashTable two");
hashtable.put(s3, "HashTable three");
hashtable.put(s4, "HashTable four");
for(Map.Entry<setClass, String> entry: hashtable.entrySet())
{
System.out.println("The HashTable key is "+entry.getKey().a+" The HashTable value is "+entry.getValue());
} //LinkedList
System.out.println("\nLinkedList.....");
List list=new LinkedList();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
Iterator listit=list.iterator();
while(listit.hasNext())
{
setClass ob=(setClass)listit.next();
System.out.println(ob.a);
} //ArrayList
System.out.println("\nArrayList.....");
List array=new ArrayList();
array.add(s1);
array.add(s2);
array.add(s3);
array.add(s4);
Iterator arrayit=array.iterator();
while(arrayit.hasNext())
{
setClass ob=(setClass)arrayit.next();
System.out.println(ob.a);
} //vector
System.out.println("\nvector.....");
Vector v=new Vector();
v.add(s1);
v.add(s2);
v.add(s3);
v.add(s4);
Iterator vit=v.iterator();
while(vit.hasNext())
{
setClass ob=(setClass)vit.next();
System.out.println(ob.a);
} }
}
输出结果:
由于覆盖了hashCode和equals方法,因此s3和s4被认为是相同的对象。
hasSet......
http://www.yjbys.com1/
http://www.yjbys.com/
http://www.yjbys.com2/ HashMap......
The key is http://www.yjbys.com1/ The value is HashMap two
The key is http://www.yjbys.com/ The value is HashMap one
The key is http://www.yjbys.com2/ The value is HashMap four HashTable......
The HashTable key is http://www.yjbys.com1/ The HashTable value is HashTable two
The HashTable key is http://www.yjbys.com/ The HashTable value is HashTable one
The HashTable key is http://www.yjbys.com2/ The HashTable value is HashTable four LinkedList.....
http://www.yjbys.com/
http://www.yjbys.com1/
http://www.yjbys.com2/
http://www.yjbys.com2/ ArrayList.....
http://www.yjbys.com/
http://www.yjbys.com1/
http://www.yjbys.com2/
http://www.yjbys.com2/ vector.....
http://www.yjbys.com/
http://www.yjbys.com1/
http://www.yjbys.com2/
http://www.yjbys.com2/
但是TreeSet和TreeMap还是不能这么输出,因为要实现Comparable接口。因为TreesSet和TreeMap是一个有序的集合,必须知道你想怎么排列。你可以换成LinkedList或ArrayList就不用了。
下一篇文章是对TreeSet和TreeMap的输出。
hasSet,TreeSet,ArrayList,LinkedList,Vector,HashMap,HashTable,TreeMap利用Iterator进行输出的更多相关文章
- Set ,List,ArrayList,LinkedList,Vectory,HashMap,Hashtable,HashSet,TreeSet,TreeSet
Set与List区别: 两者都是接口,并继承Collection接口:List有序,允许重复:Set无序,不能重复: ArrayList与LinkList区别: ArrayList是动态数组,查询效率 ...
- 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD
目录 第9讲 | 对比Hashtable.HashMap.TreeMap有什么不同? 典型回答 考点分析 知识扩展 Map 整体结构 有序 Map HashMap 源码分析 容量.负载因子和树化 精选 ...
- ArrayList LinkedList Vector
ArrayList是基于数组实现的,没有容量的限制. 在删除元素的时候,并不会减少数组的容量大小,可以调用ArrayList的trimeToSize()来缩小数组的容量. ArrayList, Lin ...
- Collections+Iterator 接口 | Map+HashMap+HashTable+TreeMap |
Collections+Iterator 接口 1. Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询 ...
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...
- ArrayList, LinkedList, Vector - dudu:史上最详解
ArrayList, LinkedList, Vector - dudu:史上最详解 我们来比较一下ArrayList, LinkedLIst和Vector它们之间的区别.BZ的JDK版本是1.7.0 ...
- Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转 ...
- Map总结--HashMap/HashTable/TreeMap/WeakHashMap使用场景分析(转)
首先看下Map的框架图 1.Map概述 1.Map是键值对映射的抽象接口 2.AbstractMap实现了Map中绝大部分的函数接口,它减少了“Map实现类”的重复编码 3.SortedMap有序的“ ...
- OAF_开发系列17_实现OAF数组应用Vector / Hashmap / Hashtable / Arraylist(案例)
20150506 Created By BaoXinjian
随机推荐
- 软件工程实训项目案例--Android移动应用开发
实训过程 角色分工 1.项目经理:负责项目的组织实施,制定项目计划,并进行跟踪管理 2.开发人员:对项目经理及项目负责 3.需求分析员:负责系统的需求获取和分析,并协助设计人员进行系统设计 4.系统设 ...
- 第50课 C++对象模型分析(上)
1. 回归本质 (1)class是一种特殊的结构体 ①在内存中class依旧可以看作变量的集合 ②class与struct遵循相同的内存对齐规则 ③class中的成员函数与成员变量是分开存放的.即每个 ...
- ios app架构设计系统文章
三. iOS应用架构谈(三):网络层设计方案(上) http://www.infoq.com/cn/articles/ios-app-arch-3-1?utm_source=infoq&utm ...
- [转] 值得推荐的C/C++框架和库
http://www.cppblog.com/merlinfang/archive/2014/12/26/209311.aspx
- 关闭log4j 输出 DEBUG org.apache.commons.beanutils.*
2016-03-23 10:52:26,860 DEBUG org.apache.commons.beanutils.MethodUtils - Matching name=getEPort on c ...
- JQuery[一] 中如何选中$(this)下面的子元素
<ul> li><span></span></li> li><span></span></li> < ...
- Spring 集成 RMI
Maven <dependency> <groupId>org.springframework</groupId> <artifactId>spring ...
- 19Spring_AOP编程(AspectJ)_使用@Pointcut注解来定义切点
我们之前的方式是采用 @AfterReturning(value="execution(* com.guigu.shen.anotion.UserDaoImpl.*(..))",r ...
- IBatis.Net学习笔记六--再谈查询
在IBatis.Net学习笔记五--常用的查询方式 中我提到了一些IBatis.Net中的查询,特别是配置文件的写法. 后来通过大家的讨论,特别是Anders Cui 的提醒,又发现了其他的多表查询的 ...
- sqlalchemy 的 ORM 与 Core 混合方式使用示例
知乎: sqlalchemy 的 ORM 与 Core 混合方式操作数据库是一种怎样的体验? 答: 酸! 本文基于:win 10 + python 3.4 + sqlalchemy 1.0.13 基本 ...