zoukankan      html  css  js  c++  java
  • 去除字符串数组或者INT数组中重复的值

    其实主要用到Array.Sort(), ArrayList, List就可以对字符串数组或者int数组进行操作

    View Code
    using System;
    using System.Collections;
    using System.Collections.Generic;
    
    namespace InsertionSorter
    {
        public class InsertionSorter
        {
            //List 可以直接操作,直接ToArray数组
            public static string[] GetString(string[] values)
            {
                List<string> list = new List<string>();
                for (int i = 0; i < values.Length; i++)//遍历数组成员
                {
                    if (!list.Contains(values[i]))
                        list.Add(values[i]);
                }
    
                list.Sort();
                return list.ToArray();
            }
    
            //可以先排序,再操作,但ArrayList转到Array,需要知道其长度或者强制转换。
            public static int[] Deletecommon(int[] array)
            {
                Array.Sort(array);
                ArrayList save = new ArrayList();
                for (int i = 0; i < array.Length; i++)
                {
                    if (!save.Contains(array[i]))
                    {
                        save.Add(array[i]);
                    }
                }
    
                //知道长度转换
                int[] result = new int[save.Count];
                save.CopyTo(result);
    
                //强制转换
                result = (int[])save.ToArray(typeof(Int32));//ToArray(Int32);这样错误,一定要强制类型转换
    
                //int[] ouput = new int[save.Count];
                //for (int j = 0; j < save.Count; j++)
                //{
                //    ouput[j] = (int)save[j];
                //}
                //ArrayList saveouput1 = ArrayList.Adapter(ouput);
    
                return result;
            }
    
            //两个for, 第一个知道所有数的个数,第二个新建个数组,添加不重复的数
            public static String[] RemoveDup(string[] myData)
            {
                if (myData.Length > 0)
                {
                    Array.Sort(myData);
    
                    int size = 1; //at least 1 
                    for (int i = 1; i < myData.Length; i++)
                        if (myData[i] != myData[i - 1])
                            size++;
    
                    String[] myTempData = new String[size];
    
                    int j = 0;
    
                    myTempData[j++] = myData[0];
    
                    for (int i = 1; i < myData.Length; i++)
                        if (myData[i] != myData[i - 1])
                            myTempData[j++] = myData[i];
    
                    return myTempData;
                }
    
                return myData;
            }
        }
        public class MainClass
        {
            public static void Main()
            {
                string[] s = new string[10] { "aaa", "aaa", "ccc", "bbb", "bbb", "ddd", "ccc", "aaa", "bbb", "ddd" };
                InsertionSorter.GetString(s);
    
                InsertionSorter.RemoveDup(s);
    
                int[] iArrary = new int[] { 1, 13, 3, 3, 6, 10, 10 };
                int[] test = InsertionSorter.Deletecommon(iArrary);
    
                for (int m = 0; m < test.Length; m++)
                    Console.Write("{0} ", test[m]);
                Console.WriteLine();
            }
        }
    }
  • 相关阅读:
    抽象方法真的不能实例化么?
    java中静态属性和和静态方法的继承问题 以及多态的实质
    Java中数据类型转换问题
    Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
    java的static块执行时机
    代理服务器:正向代理和反向代理
    阿里巴巴的一些面试题(无答案)
    pl/sql实现打印九九乘法表
    java中的标记接口(标签接口)
    spring boot中log4j冲突问题和解决办法
  • 原文地址:https://www.cnblogs.com/binyao/p/3054670.html
Copyright © 2011-2022 走看看