- 浏览: 94916 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wataxi:
第7, 8个说的好像不对,
#dd a{
te ...
我理解中的css样式表 -
show_time:
基本语句很详细呀
oracle辅导(1--3) -
yinxiangbing:
不错,很详细。。。
Struts-config.xml配置文件讲解 -
zhuyingya87:
真的不错。。
Struts-config.xml配置文件讲解 -
被判孤寂:
语句还可以,满全面。如果加上实例和图片,就更直观了
oracle辅导(1--1)
实现堆栈
1,数组(ArrayList,增删效率比较低,不适合)
2,LinkedList(实现堆栈的好方法)
3,java.util.Stack类,Stack是Vector的子类,Vector类是一个线程安全的(是一个重量级的类),并继承了Vector的方法,Verctor类(这个类也是List接口的实现类)和ArrayList的功能近乎相同。(不推荐使用Stack类来实现堆栈)。
Set接口的实现类
Set接口 |
SortedSet接口 |
TreeSet类 |
HashSet类
|
LinkedSet类
|
1)HashSet
Set的实现类的集合对象中不能够有重复元素,HashSet也一样他是使用了一种标识来确定元素的不重复,HashSet用一种算法来保证HashSet中的元素是不重复的,HashSet的底层实现还是数组。
Object类中的hashCode()的方法是所有子类都会继承这个方法,这个方法会用Hash算法算出一个Hash(哈希)码值返回,HashSet会用Hash码值去和数组长度取模,模(这个模就是对象要存放在数组中的位置)相同时才会判断数组中的元素和要加入的对象的内容是否相同,如果不同才会添加进去。如果数组中的元素和要加入的对象的hashCode()返回了相同的Hash值(相同对象),才会用equals()方法来判断两个对象的内容是否相同。
Hash算法是一种散列算法。
注意:所以要存入HashSet的集合对象中的自定义类必须覆盖hashCode(),equals()两个方法,才能保证集合中元素容不重复。在覆盖和hashCode()方法时,要使相同对象的hashCode()方法返回相同值,覆盖equals()方法再判断其内容。为了保证效率,所以在覆盖hashCode()方法时,也要尽量使不同对象尽量返回不同的Hash码值。
例:
要向HashSet中的添加自定义类型的对象并保证对象在HashSet中的唯一性的话,就要覆盖hashCode()方法和equals()方法。
import java.util.*;
public class TestSet {
public static void main(String[] args) {
Set s=new HashSet();
TarenaStudent s1=new TarenaStudent("Liucy",30);
TarenaStudent s2=new TarenaStudent("Hiloo",29);
TarenaStudent s3=new TarenaStudent("Chenzq",33);
TarenaStudent s4=new TarenaStudent("Liucy",30);
s.add(s1);
s.add(s2);
s.add(s3);
s.add(s4);
System.out.println();
print(s);
}
static void print(Collection c){
Iterator it=c.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
class TarenaStudent{
String name;
int age;
public TarenaStudent(String name, int age) {
super();
// TODO Auto-generated constructor stub
this.name = name;
this.age = age;
}
public String toString(){
return "Student: "+name+" age="+age;
}
public boolean equals(Object o){
System.out.println(this+" equals "+o);
if (o==null) return false;
if (this==o) return true;
if (o.getClass()!=this.getClass()) return false;
TarenaStudent t=(TarenaStudent)o;
if ((this.name.equals(t.name)) && this.age==t.age) return true;
else return false;
}
public int hashCode(){
return this.name.hashCode()+this.age;
}
}
LinkedSet是Set接口的实现类,他的底层是用链表实现的,他的增删效率很高,常用于过滤重复对象。
SortedSet接口是Set的子接口。
TreeSet是SortedSet接口的实现类,他可以对集合中的元素进行排序。
要存放在TreeSet中自定义类的对象,这个类要么是已经实现了Comparable接口,要么是能给出Comparator比较器,TreeSet可以自动过滤掉重复元素所以不用重载hashCode()方法,TreeSet会根据比较规则判断元素内容是否相同,TreeSet会在元素存入世就进行了排序。(在TreeSet给出排序规则时,一定要注意对象内容相等的条件,一定要注意在主观的认为两个对象内容相同时,才可以使用比较少的条件来进行判断)
在要排序时才使用TreeSet类(存储效率比较低),HashSet的存储效率比较高,在需要为HashSet的对象排序时,就可以把HashSet中的元素放入TreeSet。
Map接口的实现类
Map接口 |
SortedMap接口 |
TreeMap类
|
HashMap类 |
Hashtable类
|
Properties类 |
Map中只可以存放键值对(Key,value),其中Key是不可以重复的。Key和value是一一对应的。
发表评论
-
corejava辅导(2--3)
2008-12-13 08:37 1112java中的数组Array Java中的每一个数组就是都是 ... -
corejava辅导(17--3)
2008-12-03 17:53 829*1: 名为DoCallStuff类实现了Callable,S ... -
corejava辅导(17--2)
2008-12-03 17:51 835处理自定义注释的类 例: import java.lang.r ... -
corejava辅导(17--1)
2008-12-03 17:48 682JAVA5.0 的注释 (Annotation) 描述代码 ... -
corejava辅导(16--4)
2008-12-03 17:46 772泛型方法的定义 把数组拷贝到集合时,数组的类型一定要和集合 ... -
corejava辅导(16--3)
2008-12-03 17:44 738java5.0中的泛型 说明 增强了java的类型安全 ... -
corejava辅导(16--2)
2008-12-03 17:29 694可变长的参数 在java5.0中,可以使用一种变长参数,也就是 ... -
corejava辅导(16--1)
2008-12-03 17:25 834Java5.0的新特性 自动装箱和自动拆箱 自动封箱和 ... -
corejava辅导(15)
2008-12-03 17:18 715反射 反射,在运行时,动态分析或使用一个类进行工作。 类对 ... -
corejava辅导(14--4)
2008-12-03 17:15 777UDP socket 这种信息传输方式相当于传真,信息打包, ... -
corejava辅导(14--3)
2008-12-03 17:13 767TCP Socket TCP是Tranfer Con ... -
corejava辅导(14--2)
2008-12-03 17:10 658JAVA网络编程 网络基础知识 网络编程的目的就是指直 ... -
corejava辅导(14--1)
2008-12-03 17:08 671ObjectInputStream和ObjectOutputS ... -
corejava辅导(13--2)
2008-12-03 17:00 781BufferInputStream和BufferOutputS ... -
corejava辅导(13--1)
2008-12-03 16:56 766Java中的I/O 使用I/O流访问file中的内容。 J ... -
corejava辅导(12--3)
2008-12-03 16:53 715基本输入输出所使用的类的介绍: FileInputSt ... -
corejava辅导(12--2)
2008-12-03 16:51 704处理跨平台性 对于命令:File f2=new file( ... -
corejava辅导(12--1)
2008-12-03 15:56 738死锁问题 多线程不释放自己拥有的锁标记,而想申请其他线 ... -
corejava辅导(11--2)
2008-12-03 15:52 727共享数据的并发处理 多线程同时并发访问的资源叫做临界资源 ... -
corejava辅导(11--1)
2008-12-03 15:46 733Java多线程编程 进程,即运行中的程序,多任务操作系统中 ...
相关推荐
赠送jar包:aliyun-java-sdk-core-4.3.9.jar; 赠送原API文档:aliyun-java-sdk-core-4.3.9-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.3.9-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
赠送jar包:aws-java-sdk-core-1.11.939.jar 赠送原API文档:aws-java-sdk-core-1.11.939-javadoc.jar 赠送源代码:aws-java-sdk-core-1.11.939-sources.jar 包含翻译后的API文档:aws-java-sdk-core-1.11.939-...
赠送jar包:aliyun-java-sdk-core-4.5.30.jar 赠送原API文档:aliyun-java-sdk-core-4.5.30-javadoc.jar 赠送源代码:aliyun-java-sdk-core-4.5.30-sources.jar 包含翻译后的API文档:aliyun-java-sdk-core-4.5....
赠送jar包:aliyun-java-sdk-core-4.5.10.jar; 赠送原API文档:aliyun-java-sdk-core-4.5.10-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.5.10-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
aliyun-java-sdk-core-3.2.3 aliyun-java-sdk-core-3.2.3aliyun-java-sdk-core-3.2.3
ckeditor-java-core-3.5.3-javadoc.chm
Core Java Volume I--Fundamentals(10th) 英文epub 第10版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
赠送jar包:aws-java-sdk-core-1.12.160.jar; 赠送原API文档:aws-java-sdk-core-1.12.160-javadoc.jar; 赠送源代码:aws-java-sdk-core-1.12.160-sources.jar; 赠送Maven依赖信息文件:aws-java-sdk-core-1.12....
赠送jar包:aws-java-sdk-core-1.11.939.jar; 赠送原API文档:aws-java-sdk-core-1.11.939-javadoc.jar; 赠送源代码:aws-java-sdk-core-1.11.939-sources.jar; 赠送Maven依赖信息文件:aws-java-sdk-core-1.11....
ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar ckeditor-java-core-3.5.3.jar
aliyun-java-sdk-core-3.4.0.jar
赠送jar包:aliyun-java-sdk-core-4.3.9.jar; 赠送原API文档:aliyun-java-sdk-core-4.3.9-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.3.9-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
赠送jar包:aliyun-java-sdk-core-4.5.10.jar; 赠送原API文档:aliyun-java-sdk-core-4.5.10-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.5.10-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是alicom-dysms-api包
Core Java Volume II--Advanced Features(10th) 英文azw3 第10版
赠送jar包:aliyun-java-sdk-core-4.5.30.jar; 赠送原API文档:aliyun-java-sdk-core-4.5.30-javadoc.jar; 赠送源代码:aliyun-java-sdk-core-4.5.30-sources.jar; 赠送Maven依赖信息文件:aliyun-java-sdk-core-...
aliyun-java-sdk-dysmsapi-1.0.0.ja jar aliyun sdk java core
--Fundamentals 9th Edition).rar》是一个包含两本经典Java编程书籍的压缩文件,分别对应《Core Java Volume I--Fundamentals 9th Edition》和《Core Java Volume II--Advanced Features 9th Edition》的第九版。...
Java核心技术第九版Java7,Mobi格式电子书。Core Java Volume I--Fundamentals (9th Edition)
在这个场景中,"aliyun-java-sdk-core-4.1.0.jar" 是一个Java版本的核心SDK,主要用于与阿里大于的各项服务进行交互,特别是短信发送功能。 一、阿里大于SDK核心功能 1. **身份验证**:SDK提供了基于AccessKey的...