JAVA多种去重方式

字符串去重

/**
     * 字符串去重
     * @param str
     * @return
     */
    public static String getByStr(String str){
        String result="";
        for (int i = 0; i < str.length(); i++) {
            String s=str.charAt(i)+"";
            if (result.indexOf(s)<0){
                result+=s;
            }
        }
        return result;
    }

字符串数组去重

/**
     * 数组去重
     * @param str
     * @return
     */
    public static String getByArry(String str){
        String result="";
        String[] strs=new String[str.length()];
        String[] arr=new String[str.length()];
        for (int i = 0; i < str.length(); i++) {
            arr[i]=str.charAt(i)+"";
        }
        out:for (int i = 0; i < arr.length; i++) {
            for (int j = i+1; j < arr.length; j++) {
                if (arr[i].equals(arr[j])){
                    continue out;
                }
            }
            // 后面没有与当前元素重复的值,保存这个数
            strs[i] = arr[i];
        }
        for (int i = 0; i < strs.length; i++) {
            if (strs[i]!=null){
                result+=strs[i];
            }
        }
        return result;
    }

List去重

/**
     * list去重
     * @param str
     * @return
     */
   public static String getByList(String str){
        String result="";
        List strLsit=new ArrayList();
       for (int i = 0; i < str.length(); i++) {
           String s=str.charAt(i)+"";
           if (!strLsit.contains(s)){
               strLsit.add(s);
           }
       }
        return getListString(strLsit);
   }

	/**
     * 将list转换为字符串
     * @param list
     * @return
     */
   public static String getListString(List list){
        String result="";
       for (Object obj: list) {
           String str= (String) obj;
           result+=str;
       }
       return result;
   }

Set去重

/**
     * set去重
     * @param str
     * @return
     */
   public static String getBySet(String str){
       String result="";
       Set strSet=new HashSet();
       for (int i = 0; i < str.length(); i++) {
           String s=str.charAt(i)+"";
           strSet.add(s);
       }
       return getSetString(strSet);
   }
/**
     * 将Set转换为字符串
     * @param set
     * @return
     */
    public static String getSetString(Set set){
        String result="";
        for (Object obj: set) {
            String str= (String) obj;
            result+=str;
        }
        return result;
    }

Map去重

/**
     * map去重
     * @param str
     * @return
     */
   public static String getByMap(String str){
       String result="";
       Map map=new HashMap();
       for (int i = 0; i < str.length(); i++) {
           String s=str.charAt(i)+"";
           map.put(s,s);
       }
       return getMapString(map);
   }
/**
     * 将map转换为字符串
     * @param map
     * @return
     */
    public static String getMapString(Map map){
        String result="";
        for (Object obj: map.keySet()) {
            String str= (String) obj;
            result+=str;
        }
        return result;
    }

测试

 public static void main(String[] args) {
        String str="abcabcvfvv";
        //字符串去重
        //String byStr = getByStr(str);
        //List去重
        //String byStr = getByList(str);
        //Set去重
        //String byStr = getBySet(str);
        //map去重
        //String byStr = getByMap(str);
        //数组去重
        String byStr = getByArry(str);
        System.out.println(byStr);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值