关于一个去除重复数组的问题
2009-10-09 14:41
645 查看
最近一个朋友在找工作,偶尔问些关于C#的笔试题,其中有一个是关于去除一个数组中的重复数问题:如定义一个int型数组:
int[] testNum={1,1,3,5,6,3,6,9};
要求写一个函数得到如下数据[1,3,5,6,9],即重复出现的数只保存第一次出现的那一个数据,本来很简单的一个问题,但是不留心还是会遇到些小麻烦,在这里主要采用array,hashtable以及arraylist几个东西的用法吧:
开始只想到用array,后来才发现array分配的内存是连续的。故没有remove(at)、add等属性,需要重新构造一个数组,写出来貌似比较麻烦
private int[] DuplicatiNum(int[] intArray)
{
int[] retArray = new int[intArray.Length];
Hashtable hshArray = new Hashtable();
int intIndex = 0;
foreach (int p in intArray)
{
if (!hshArray.ContainsKey(p))
{
hshArray.Add(p, p);
retArray[intIndex] = p;
intIndex++;
}
}
int[] arrReturn = new int[intIndex];
for (int i = 0; i < intIndex; i++)
{
arrReturn[i] = retArray[i];
}
hshArray.Clear();
hshArray = null;
return arrReturn;
}
后来发现用arraylist处理方便多了:
private int[] UsingArrayList(int[] intArray)
{
ArrayList arrInt = new ArrayList();
Hashtable hshArray = new Hashtable();
foreach (int p in intArray)
{
if (!hshArray.ContainsKey(p))
{
hshArray.Add(p, p);
arrInt.Add(p);
}
}
hshArray.Clear();
hshArray = null;
return (int[])arrInt.ToArray(typeof(int));
}
在新建的aspx页面里面测试通过,留个纪念吧,也算是加深下对array,arraylist和hashtable的理解吧
protected void Page_Load(object sender, EventArgs e)
{
int[] testNum={1,1,3,5,6,3,6,9};
int[] testDuplicate = DuplicatiNum(testNum);
int[] testArrayList = UsingArrayList(testNum);
}
int[] testNum={1,1,3,5,6,3,6,9};
要求写一个函数得到如下数据[1,3,5,6,9],即重复出现的数只保存第一次出现的那一个数据,本来很简单的一个问题,但是不留心还是会遇到些小麻烦,在这里主要采用array,hashtable以及arraylist几个东西的用法吧:
开始只想到用array,后来才发现array分配的内存是连续的。故没有remove(at)、add等属性,需要重新构造一个数组,写出来貌似比较麻烦
private int[] DuplicatiNum(int[] intArray)
{
int[] retArray = new int[intArray.Length];
Hashtable hshArray = new Hashtable();
int intIndex = 0;
foreach (int p in intArray)
{
if (!hshArray.ContainsKey(p))
{
hshArray.Add(p, p);
retArray[intIndex] = p;
intIndex++;
}
}
int[] arrReturn = new int[intIndex];
for (int i = 0; i < intIndex; i++)
{
arrReturn[i] = retArray[i];
}
hshArray.Clear();
hshArray = null;
return arrReturn;
}
后来发现用arraylist处理方便多了:
private int[] UsingArrayList(int[] intArray)
{
ArrayList arrInt = new ArrayList();
Hashtable hshArray = new Hashtable();
foreach (int p in intArray)
{
if (!hshArray.ContainsKey(p))
{
hshArray.Add(p, p);
arrInt.Add(p);
}
}
hshArray.Clear();
hshArray = null;
return (int[])arrInt.ToArray(typeof(int));
}
在新建的aspx页面里面测试通过,留个纪念吧,也算是加深下对array,arraylist和hashtable的理解吧
protected void Page_Load(object sender, EventArgs e)
{
int[] testNum={1,1,3,5,6,3,6,9};
int[] testDuplicate = DuplicatiNum(testNum);
int[] testArrayList = UsingArrayList(testNum);
}
相关文章推荐
- 一个关于去除数组重复元素的问题(C语言实现)
- 一个关于去除数组重复元素的问题(C语言实现)
- 一个有趣的问题:怎么在JS的数组中去除重复元素?(JAVA实现吧..)
- 关于去除JS数组中的重复元素问题
- 一个关于数组存储特定序列问题的思考
- 关于使用select标签,去掉重复选项的问题。默认首选项不被去除。
- 去除数组中的重复数据(一个或多个数组)
- 【我解C语言面试题系列】009 特殊的去除数组中重复数字问题
- 一个大小为N的数组,里面是N个整数,怎样去除重复
- 去除数组中的重复数据(一个或多个数组)
- 编写一个去除有重复数的数组的方法
- 一个大小为N的数组,里面是N个整数,怎样去除重复的数
- 关于遍历向数组中添加值的问题定义一个空数组要写在循环外,否则会被覆盖
- 关于如何去除数组中重复项
- 一直复略了的一个问题,关于表单重复提交
- 关于一个查找数组中是否存在某一个元素的问题
- net c#数组问题 声明一个100大小的数组 随机插入1-100之间的数,不能重复
- 一个大小为N的数组,里面是N个整数,怎样去除重复的数
- 关于随机数无重复填充数组问题
- 关于 将一个数组赋值给另外一个数组会重置原来数组的指针 的问题