2006/8/22
集合类:数据结构
看书得到:vector v=new vector();
约等于 for(student s:sh)
Enumeration e=v.elements();
{
While(e.hasmoreElements())
System.out.println(s);
{ Integer inObj=(Integer)e.nextElement();
}
sum+=intobj.intValue(); 这段代码很好的解决的
}
叠加器问题。
System.out.println(sum);
Vector:保存对象,提供了与动态数组类似的功能。不能预先知道对象数目,或方便获得存放位置。
Enumeration:接口类,数据的抽象机制
ArrayList:是实现Collection接口类,因此可以创建对象。
Collection:接口类,取出保存实现了对象,通过Collection.iterator方法,返回Iterator接口对象,不能直接创建对象。对象之间没顺序,可以重复。
Itertor====Enumeration
Set::对象之间没顺序,不可以重复。
List:对象之间有顺序,可以重复。
知识点1:AbstractSet类:有方法removeAll(),取走所有。
2:Hashset:比较对象的哈希值,存放不是有哈希值的大小,体现了数据的算法(庆幸已经在大学学过!),比如358对折后等与23。
3:TreeSet 两个对象相等,只存一个。不相等,比较大小来存。
4:专家模式:开门。人是调用门动的方法,门是专家。
5:模板方法:流程定,方法实现不定。比如,既将removeAll()意思是一个一的挪走,动作重复。
6:策略模式:计算规则,策略对象不同,方法不同。(开闭原则)对扩展开放对修改关闭。
7:尽量使用组合,避免继承??????(我也不懂,大师的脑袋)
8:linkedlist 是连表。
9:map:双连表。
10:Hashmap<K,V>:如果两个哈希相同,则覆盖以前的,K代表第一组的对象关键字,V代表了第二组的对象值。原因:第1个对象相同但是第二个对象不同。
11:(不太明白的货色)entrySet()方法是指从map中取出一组数据,整体(K,V)都取出,保存为map.Entry 类型(Entry是map的内部类)。
12:IdentityHasMap:当(= =)时两个都存入,equals时则存一个。
13:@Override 方法覆盖前者,只在JDK1.5中用到。
今天的必须代码是:
import java.uitl.*;
public class student
{
String name=null;
Int age=0;
Public student()
{
this.student=student;
this.age=age;
}
public int hasCode()
{
return age+name.hasCode();
}
@Override
public Boolean equals(Object obj)
{
if(!(Object instanceof student))
{
return false;
}
else
{
student ouj=(student)obj;
return (age= =ouj.age)&&(name equals.(ouj.age))
}
}
public String tostring()
{
return age+name;
}
}
public class hhhh
{
public static void main (String args[])
{
Hashset hs=new Hashset();
hs.add(new student(new String(“sa”),20 ) );
hs.add(new student(new String(“sa”),20));
System.out.println(hs.size());
Intorget Ig=hs.intorget();
While(ig.hasNext())
{
Student sr=Ig.next();
System.out.println(sr);
}
}
}