Serializable
1、序列化是干什么的?
2、什么情况下需要序列化
3、当对一个对象实现序列化时,究竟发生了什么?
java 代码
1.Foo
2.myFoo .setWidth(37);
3.myFoo.setHeight(70);
java 代码
1.FileOutputStream fs = new FileOutputStream("foo.ser");
2.ObjectOutputStream os = new ObjectOutputStream(fs);
3.os.writeObject(myFoo);
4、实现序列化(保存到一个文件)的步骤
FileOutputStream fs = new FileOutputStream("foo.ser");
ObjectOutputStream os =
os.writeObject(myObject1);
os.writeObject(myObject2);
os.writeObject(myObject3);
os.close();
5、举例说明
java 代码
1.import java.io.*;
3.public class
4.{
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
30.}
Public static void seserialize(string filename) throws Exception
{
ObjectInputStream in = new ObjectInputStream (new FileInputStream(filename));
Box box = (Box) (in.readbject());
System.out.println(box.toString());
In.Closer();
}
Iterator
List list = new ArrayList();
list .add(“a”);
for(Iterator it = list .iterator(); iter.hasNext();)
{
Object obj = it.next();
If(“a”.equals(obj)
{
}
选猴王问题。、
100个猴子围城一圈,从第一个开始报数,当报到底14个人猴子时候,则第14个退出,依次类推,最后圈中剩下的一个就是猴王。
用链表 , num模拟报数,num等于14到时候节点删除,用一个计数器cnt来记录已经删除的节点,初始值为100,等于1时候即为猴王。
当把 100换成M ,14换成N,变成了约瑟夫环问题。
Public static void main(string []args)
{
Cnt = 100;
Number = 0;
Iterator it = lucky.iterator();
//循环删除退出的猴子,知道只剩下一个
While(cnt>1)
{
If(it .hasNext())
{
It.next(); //往后面数
++number;
}
else{
it = lucky.iterator();
}
//删除应该退出圈得猴子
If(number==14)
{
Number =0;
It.remove();
--cnt;
}
}
System.out.println(“猴王为:”+lucky.element());
}