本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
【转】 Java集合
引用1. Set:
Set是一个集合接口,它的特征和数学上的集合有点类似,Set中存放的是对象的引用,继承自Collection接口,它具有如下的特征:
. Set中不允许存放重复元素
. Set中的元素是无序的
. Set主要有HashSet、LinkedHashSet和TreeSet三个实现类
1.1 HashSet:
HashSet按照特 ...
【转】HashSet和TreeSet的区别
HashSet和TreeSet的区别
一. 问题
1. HashSet,TreeSet是如何使用hashCode()和equals()方法的?
2. TreeMap,TreeSet中的对象为何要实现Comparable接口?
二. 回答:
1. HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的,只不过Set用的只是Map的key
2. Map的ke ...
HashSet源码分析
HashSet源码分析
HashSet是Set的一个实现,Set定义一个集合,集合的一个特征是不能包含重复的元素(可以包含null),HashSet底层使用HashMap作为存储结构来实现。
可知HashSet只用来存储对象,并不是key-value对,因为HashMap中的key必须是不同的,跟集合的定义相同,
所以HashSet只使用HashMap中的k ...
java需要关注的知识点---HashSet
1.构造方法:
public HashSet() {
map = new HashMap<E,Object>();
}
可以看出,hashSet的实现其实是一个hashMap(详见本人写的hashMap)
HashSet中基本都是调用hashMap的方法实现的,取得的值都是hashMap的key,在往hashMap存入值时候,value都是一个默认的object ...
HashSet的实现
当new HashSet的时候,HashSet的构造方法如下:
public HashSet() {
map = new HashMap<E,Object>();
}也就是说,hashSet的内部是用HashMap实现的。
当向set add一个对象的时候,源码如下:
public boolean add(E o) {
return map.put(o, PRESENT)== ...
HashSet hashCode equals
在使用HashSet 的时候往往需要重写他的equals和hashCode方法,简单记录一下调用过程做个备忘
1.当hashcode不相等时,两个对象则不相等,不调用equals
2.当hashcode相等时,则看两个对象是否equals,即调用equals方法比较
public class Person {
private String name;
private int age ; ...
hashMap的hashCode() 和equa()的使用 (转载)
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import android.app.Activity;
import android.os.Bundle;
public class TestCollectionActivity exten ...
HashSet的实现原理
1. HashSet概述:
HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。
2. HashSet的实现:
对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单 ...
关于集合hashtable,hashmap,hashset,treemap,treeset
Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同 ...
重写equals和hashCode方法,让入HashSet中的内容不重复
package com.zj.hashset.test;
import java.util.HashSet;
/**
* 功能:重写equals和hashCode方法,让相同姓名的用户不能重复加入HashSet
* @author zhengjiong
* time:2011-9-14 下午11:52:44
*/
public class HashSet_Test ...
LinkedHashSet源码带来的思考
1、LinkedHashSet具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。
2、LinkedHashSet源码一部分
public class LinkedHashSet<E>extends HashSet<E>implements Set<E>, Cloneabl ...
Map——HashMap和HashTable
HashMap和HashTable都实现Map接口。HashMap允许键和值为null,但HashTable不行。两者的键都不能重复。
import java.util.HashMap;
import java.util.Hashtable;
public class MapTest {
/**
* @param args
*/
public static voi ...
HashSet介绍
(1) 为啥要用HahSet?
假如我们现在想要在一大堆数据中查找X数据。LinkedList的数据结构就不说了,查找效率低的可怕。ArrayList哪,如果我们不知道X的位置序号,还是一样要全部遍历一次直到查到结果,效率一样可怕。HashSet天生就是为了提高查找效率的。
(2) hashCode 散列码
散列码是由对象导出的一个整数值。在Object中有一个hashCode方 ...
HashSet与LinkedHashSet
HashSet定义
HashSet是在HashMap基础上实现的元素不重复的集合容器,定义如下:
......
private transient HashMap<E,Object> map;
......
其底层数据结构就是HashMap,数据以KEY的形式保存与map中。HashSet有如下三个构造函数:
public HashSet(int initialCapac ...