zoukankan
html css js c++ java
.Net 集合类
.Net 类库里没有集合类的吗?
自己写了个,大家提提意见~~
using
System;
using
System.Collections;
namespace
CN.Teddy.Util.Collections
{
/**/
///
<summary>
///
ISimpleSet 的摘要说明。
///
</summary>
public
interface
ISimpleSet : ICollection, ICloneable
{
bool
Contains(
object
obj);
bool
BelongTo(SimpleSet set2);
void
Add(
object
obj);
void
Remove(
object
obj);
void
Clear();
SimpleSet Intersect(SimpleSet set2);
SimpleSet Union(SimpleSet set2);
SimpleSet Minus(SimpleSet set2);
}
}
using
System;
using
System.Collections;
namespace
CN.Teddy.Util.Collections
{
/**/
///
<summary>
///
SimpleSet 的摘要说明。
///
</summary>
public
class
SimpleSet : ISimpleSet
{
Private members
#region
Private members
private
ArrayList _Data
=
null
;
private
IEqualHandler _EqualHandler
=
null
;
private
void
InitPrivateMembers()
{
_Data
=
new
ArrayList();
if
(_EqualHandler
==
null
)
{
_EqualHandler
=
new
EqualHandler();
}
}
#endregion
Public Members
#region
Public Members
public
object
this
[
int
index]
{
get
{
return
_Data[index];
}
}
#endregion
Constructors
#region
Constructors
public
SimpleSet()
{
InitPrivateMembers();
}
public
SimpleSet(IEqualHandler eh)
{
_EqualHandler
=
eh;
InitPrivateMembers();
}
#endregion
ICollection 成员
#region
ICollection 成员
public
bool
IsSynchronized
{
get
{
return
_Data.IsSynchronized;
}
}
public
int
Count
{
get
{
return
_Data.Count;
}
}
public
void
CopyTo(Array array,
int
index)
{
_Data.CopyTo(array, index);
}
public
object
SyncRoot
{
get
{
return
_Data.SyncRoot;
}
}
#endregion
IEnumerable 成员
#region
IEnumerable 成员
public
IEnumerator GetEnumerator()
{
return
_Data.GetEnumerator();
}
#endregion
ISimpleSet 成员
#region
ISimpleSet 成员
public
bool
Contains(
object
obj)
{
foreach
(
object
item
in
_Data)
{
if
(_EqualHandler.Equal(item, obj))
{
return
true
;
}
}
return
false
;
}
public
bool
BelongTo(CN.Teddy.Util.Collections.SimpleSet set2)
{
bool
ret
=
true
;
foreach
(
object
item
in
_Data)
{
if
(
!
set2.Contains(item))
{
ret
=
false
;
break
;
}
}
return
ret;
}
public
void
Add(
object
obj)
{
if
(
!
this
.Contains(obj))
{
_Data.Add(obj);
}
}
public
void
Remove(
object
obj)
{
foreach
(
object
item
in
_Data)
{
if
(_EqualHandler.Equal(obj, item))
{
_Data.Remove(item);
break
;
}
}
}
public
void
Clear()
{
_Data.Clear();
}
public
CN.Teddy.Util.Collections.SimpleSet Intersect(CN.Teddy.Util.Collections.SimpleSet set2)
{
SimpleSet ret
=
new
SimpleSet(_EqualHandler);
foreach
(
object
item
in
_Data)
{
if
(set2.Contains(item))
{
ret.Add(item);
}
}
return
ret;
}
public
CN.Teddy.Util.Collections.SimpleSet Union(CN.Teddy.Util.Collections.SimpleSet set2)
{
SimpleSet ret
=
this
.Clone()
as
SimpleSet;
foreach
(
object
item
in
set2)
{
ret.Add(item);
}
return
ret;
}
public
CN.Teddy.Util.Collections.SimpleSet Minus(CN.Teddy.Util.Collections.SimpleSet set2)
{
SimpleSet ret
=
this
.Clone()
as
SimpleSet;
foreach
(
object
item
in
set2)
{
if
(ret.Contains(item))
{
ret.Remove(item);
}
}
return
ret;
}
#endregion
ICloneable 成员
#region
ICloneable 成员
public
object
Clone()
{
SimpleSet ret
=
new
SimpleSet(_EqualHandler);
foreach
(
object
item
in
_Data)
{
ret.Add(item);
}
return
ret;
}
#endregion
}
}
using
System;
namespace
CN.Teddy.Util.Collections
{
/**/
///
<summary>
///
IEqualHandler 的摘要说明。
///
</summary>
public
interface
IEqualHandler
{
bool
Equal(
object
obj1,
object
obj2);
}
}
using
System;
namespace
CN.Teddy.Util.Collections
{
/**/
///
<summary>
///
EqualHandler 的摘要说明。
///
</summary>
public
class
EqualHandler : IEqualHandler
{
IEqualHandler 成员
#region
IEqualHandler 成员
public
bool
Equal(
object
obj1,
object
obj2)
{
//
TODO: 添加 EqualHandler.Equal 实现
return
obj1.Equals(obj2);
}
#endregion
}
}
查看全文
相关阅读:
Epic OA Day2 2014/11/7
LeetCode day15 2014/11/3
LeetCode day14 2014/11/2
Bluetooth BQB PTS(Profile Tuning Suite)
音频编码:ADPCM
软件推荐 : USB Over Network
IOS的BLE蓝牙连接参数限制
python pyinstaller
QCC3003x BLE 设置私有地址
QCC300x UART
原文地址:https://www.cnblogs.com/teddyma/p/102357.html
最新文章
MFC无边框窗体不响应任务栏点击问题
区间DP基础——石子归并
灌水导论——灌水法初步
Palindrome Number
String to Integer (atoi)
Reverse Integer
ZigZag Conversion
推荐几个机器学习算法及应用领域相关的中国大牛:(转)
机器学习经典书籍小结(转)
UVaOJ 112道题目-组合数学
热门文章
UVaOJ 112道题目-算数与代数
UVaOJ 112道题目-排序
UVaOJ 112道题目-字符串
Tic Tac Toe
Valid Password
Well-ordered String
Telephone Number
Cipe Coding Summary Part2
Cipe Coding Summary Part1
Java tricks & knowledge Summary
Copyright © 2011-2022 走看看