LinekdHashSet简介 LinkedHashSet继承自HashSet,源码更少、更简单,唯一的区别是LinkedHashSet内部使用的是LinkHashMap。 这样做的意义或者好处就是LinkedHashSet中的元素顺序是可以保证的,也就是说遍历序和插入序是一致的。 Demo使用
public class MainSet {
public static void main ( String[ ] args) {
Object value = new Object ( ) ;
HashMap< String, Object> hashMap = new HashMap < > ( ) ;
HashSet< String> hashSet = new HashSet < > ( ) ;
LinkedHashMap< String, Object> linkedHashMap = new LinkedHashMap < > ( ) ;
LinkedHashSet< String> linkedHashSet = new LinkedHashSet < > ( ) ;
hashSet. add ( "java" ) ;
hashMap. put ( "java" , value) ;
linkedHashSet. add ( "java" ) ;
linkedHashMap. put ( "java" , value) ;
hashSet. add ( "golang" ) ;
hashMap. put ( "golang" , value) ;
linkedHashSet. add ( "golang" ) ;
linkedHashMap. put ( "golang" , value) ;
hashSet. add ( "python" ) ;
hashMap. put ( "python" , value) ;
linkedHashSet. add ( "python" ) ;
linkedHashMap. put ( "python" , value) ;
hashSet. add ( "ruby" ) ;
hashMap. put ( "ruby" , value) ;
linkedHashSet. add ( "ruby" ) ;
linkedHashMap. put ( "ruby" , value) ;
hashSet. add ( "scala" ) ;
hashMap. put ( "scala" , value) ;
linkedHashSet. add ( "scala" ) ;
linkedHashMap. put ( "scala" , value) ;
hashSet. add ( "c" ) ;
hashMap. put ( "c" , value) ;
linkedHashSet. add ( "c" ) ;
linkedHashMap. put ( "c" , value) ;
System. out. println ( "默认插入序:\njava\tgolang\tpython\truby\tscala\tc" ) ;
System. out. println ( " \nHashSet:-------------------" ) ;
for ( String str : hashSet) {
System. out. print ( str + "\t" ) ;
}
System. out. println ( " \n\nHashMap:-------------------" ) ;
for ( Map. Entry< String, Object> entry : hashMap. entrySet ( ) ) {
System. out. print ( entry. getKey ( ) + "\t" ) ;
}
System. out. println ( " \n\nLinkedHashSet:-------------------" ) ;
for ( String str : linkedHashSet) {
System. out. print ( str + "\t" ) ;
}
System. out. println ( " \n\nLinkedHashMap:-------------------" ) ;
for ( Map. Entry< String, Object> entry : linkedHashMap. entrySet ( ) ) {
System. out. print ( entry. getKey ( ) + "\t" ) ;
}
}
}