C
o
l
l
e
c
t
i
o
n
接
口
{
L
i
s
t
接
口
:
规
定
集
合
类
元
素
具
有
可
控
制
的
顺
序
S
e
t
接
口
:
规
定
集
合
类
元
素
不
能
重
复
Q
u
e
u
e
接
口
:
支
持
队
列
插
入
、
取
出
等
操
作
Collection接口\begin{cases}List接口:规定集合类元素具有可控制的顺序\\ Set接口:规定集合类元素不能重复 \\ Queue接口:支持队列插入、取出等操作\end{cases}
Collection接口⎩⎪⎨⎪⎧List接口:规定集合类元素具有可控制的顺序Set接口:规定集合类元素不能重复Queue接口:支持队列插入、取出等操作
遍
历
接
口
{
枚
举
接
口
E
n
u
m
e
r
a
t
i
o
n
:
h
a
s
M
o
r
e
E
l
e
m
e
n
t
s
(
)
、
n
e
x
t
E
l
e
m
e
n
t
(
)
迭
代
器
接
口
I
t
e
r
a
t
o
r
:
h
a
s
N
e
x
t
(
)
、
n
e
x
t
(
)
、
r
e
m
o
v
e
(
)
迭
代
器
接
口
L
i
s
t
I
t
e
r
a
t
o
r
:
h
a
s
N
e
x
t
(
)
、
n
e
x
t
(
)
、
h
a
s
P
r
e
v
i
o
u
s
(
)
、
p
r
e
v
i
o
u
s
(
)
、
r
e
m
o
v
e
(
)
、
n
e
x
t
I
n
d
e
x
(
)
、
p
r
e
v
i
o
u
s
I
n
d
e
x
(
)
、
a
d
d
(
)
遍历接口\begin{cases}枚举接口Enumeration: hasMoreElements()、nextElement() \\迭代器接口Iterator:hasNext()、next()、remove()\\迭代器接口ListIterator:hasNext()、next()、hasPrevious()、previous()、remove()、nextIndex()、previousIndex()、add()\end{cases}
遍历接口⎩⎪⎨⎪⎧枚举接口Enumeration:hasMoreElements()、nextElement()迭代器接口Iterator:hasNext()、next()、remove()迭代器接口ListIterator:hasNext()、next()、hasPrevious()、previous()、remove()、nextIndex()、previousIndex()、add()
M
a
p
接
口
{
k
e
y
S
e
t
(
)
:
获
取
映
射
中
关
键
字
集
合
的
一
个
S
e
t
引
用
v
a
l
u
e
s
(
)
:
返
回
映
射
中
值
集
合
的
一
个
C
o
l
l
e
c
t
i
o
n
引
用
e
n
t
r
y
S
e
t
(
)
:
返
回
一
个
S
e
t
Map接口\begin{cases}keySet():获取映射中关键字集合的一个Set引用 \\values():返回映射中值集合的一个Collection引用\\entrySet():返回一个Set\end{cases}
Map接口⎩⎪⎨⎪⎧keySet():获取映射中关键字集合的一个Set引用values():返回映射中值集合的一个Collection引用entrySet():返回一个Set
Map的实现类:Hashtable、HashMap、TreeMap
Map遍历:
Set keys = map.keySet();if(keys!=null){
Iterator iterator = keys.iterator();while(iterator.hasNext()){
Object key = iterator.next();
Object value = map.get(key);...;}}
Set entries = map.entrySet();if(entries!=null){
Iterator iterator = entries.iterator();while(iterator.hasNext()){
Map.Entry entry = iterator.next();
Object key = entry.getKey();
Object value = entry.getValue();...;}}
字
节
流
{
I
n
p
u
t
S
t
r
e
a
m
{
int read(byte b[ ]):读多个字节到数组中,返回读到的字节数目,如果读完则返回-1
int read(byte b[ ], int off, int len):从输入流中读取长度为len的数据,写入数组b中从索引off开始的位置,并返回读取的字节数,如果读完则返回-1
O
u
t
p
u
t
S
t
r
e
a
m
{
write(byte b[ ]):将字节数组中的数据输出到流中
write(byte b[ ], int off, int len):将数组b从off指定的位置开始,长度为len的数据输出到流中
flush():刷空输出流,并将缓冲区中的数据强制送出
字节流\begin{cases}InputStream\begin{cases}\text{int read(byte b[ ]):读多个字节到数组中,返回读到的字节数目,如果读完则返回-1}\\\text{int read(byte b[ ], int off, int len):从输入流中读取长度为len的数据,写入数组b中从索引off开始的位置,并返回读取的字节数,如果读完则返回-1}\end{cases}\\ \\OutputStream\begin{cases}\text{write(byte b[ ]):将字节数组中的数据输出到流中}\\\text{write(byte b[ ], int off, int len):将数组b从off指定的位置开始,长度为len的数据输出到流中}\\\text{flush():刷空输出流,并将缓冲区中的数据强制送出}\end{cases}\end{cases}
字节流⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧InputStream{int read(byte b[ ]):读多个字节到数组中,返回读到的字节数目,如果读完则返回-1int read(byte b[ ], int off, int len):从输入流中读取长度为len的数据,写入数组b中从索引off开始的位置,并返回读取的字节数,如果读完则返回-1OutputStream⎩⎪⎨⎪⎧write(byte b[ ]):将字节数组中的数据输出到流中write(byte b[ ], int off, int len):将数组b从off指定的位置开始,长度为len的数据输出到流中flush():刷空输出流,并将缓冲区中的数据强制送出
// 由Socket对象得到输入流,并构造相应的BufferedReader对象
BufferedReader is =newBufferedReader(newInputStreamReader(socket.getInputStream()));// 由Socket对象得到输出流,并构造PrintWriter对象
PrintWriter os =newPrintWriter(socket.getOutputStream());// 由系统标准输入设备构造BufferedReader对象
BufferedReader sin =newBufferedReader(newInputStreamReader(System.in));