黑灵客栈
黑灵的没啥技术含量的技术博客! -> http://zjumty.iteye.com
BlogJava
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
随笔:204 文章:2 评论:243 引用:0
org.mstar.collection.Counter
org.mstar.collection.Counter
这个类主要功能是记录放入其中的相同对象的个数(用equals()比较)
例如:
Counter c
=
new
Counter();
c.add(
"
One
"
);
c.add(
"
Two
"
);
c.add(
"
One
"
);
c.
get
(
"
One
"
)
//
Result is 2;
c.
get
(
"
Two
"
)
//
Result is 1;
这个类的名字也许需要该以下。
还有什么需要改进的地方,或者还需要哪些方法,请大家提示。
实现如下:
1
package org.mstar.collection;
2
3
import java.util.HashMap;
4
import java.util.Iterator;
5
import java.util.Map;
6
7
8
/**/
/*
*
9
* @author mty
10
*
11
*/
12
public
class
Counter
{
13
private
Map map;
14
15
public
Counter()
{
16
map
=
new
HashMap();
17
}
18
19
public
void
add(Object key)
{
20
if
(map.containsKey(key))
{
21
Integer i
=
(Integer)map.
get
(key);
22
int
amount
=
i.intValue();
23
map.put(key,
new
Integer(
++
amount));
24
}
else
{
25
map.put(key,
new
Integer(
1
));
26
}
27
}
28
29
public
void
add(Object key,
int
amount)
{
30
if
(map.containsKey(key))
{
31
Integer i
=
(Integer)map.
get
(key);
32
int
amount2
=
i.intValue();
33
map.put(key,
new
Integer(amount
+
amount2));
34
}
else
{
35
map.put(key,
new
Integer(amount));
36
}
37
}
38
39
public
Iterator iterator()
{
40
return
map.keySet().iterator();
41
}
42
43
public
int
getCount(Object key)
{
44
Integer i
=
(Integer)map.
get
(key);
45
return
i.intValue();
46
}
47
48
public
int
[] countArray()
{
49
int
[] result
=
new
int
[map.size()];
50
Object[] keys
=
keyArray();
51
for
(
int
i
=
0
;i
<
result.length;i
++
)
{
52
result[i]
=
getCount(keys[i]);
53
}
54
55
return
result;
56
}
57
58
public
Object[] keyArray()
{
59
return
map.keySet().toArray();
60
}
61
62
public
void
remove(Object key)
{
63
if
(map.containsKey(key))
{
64
Integer i
=
(Integer)map.
get
(key);
65
int
amount
=
i.intValue();
66
map.put(key,
new
Integer(amount
<
0
?
0
:
--
amount));
67
}
68
}
69
70
public
void
remove(Object key,
int
amount)
{
71
if
(map.containsKey(key))
{
72
Integer i
=
(Integer)map.
get
(key);
73
int
amount2
=
i.intValue();
74
map.put(key,
new
Integer(amount2
-
amount
<
0
?
0
:amount2
-
amount));
75
}
76
}
77
78
public
int
size()
{
79
return
map.size();
80
}
81
}
发表于 2005-06-01 21:11
黑灵
阅读(337)
评论(0)
编辑
收藏
所属分类:
MStar Utility
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
org.mstar.collection.TwoDimensionTable
org.mstar.collection.Counter
<
2005年6月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
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
29
30
1
2
3
4
5
6
7
8
9
公告
常用链接
我的随笔
我的评论
我的参与
最新评论
随笔分类
(175)
AJAX(6)
(rss)
DataBase(5)
(rss)
Do everything with Groovy(4)
(rss)
ExtJS
(rss)
J2EE(29)
(rss)
JSF(4)
(rss)
MStar Utility(2)
(rss)
ORM(9)
(rss)
RIA(3)
(rss)
Server配置(2)
(rss)
Struts(1)
(rss)
Tapestry(1)
(rss)
Unix&Linux(32)
(rss)
wap(1)
(rss)
WebWork(4)
(rss)
不编不知道,一编吓一跳(17)
(rss)
乱七八糟(32)
(rss)
客户端技术(1)
(rss)
正则表达式
(rss)
脚本语言(22)
(rss)
文章分类
(1)
Tomcat(1)
(rss)
博客同道
GENOW
(rss)
远离尘嚣
常用资源
Martin Fowler
Martin Fowler的文章
最新评论
1. re: 关于spring-mvc的InitBinder注解的参数
这个里面User与User_是两个不同的类
--mmocake