日期:2014-05-20  浏览次数:20751 次

cha[]问题~~~~~求助
char[] c = {'a','a','c','d','b','c','b',,'b','a'};

只要出现过的元素就放进char[] r里,重复的不能放进去。

结果是char[] r = {'a','b','c','d'};


------解决方案--------------------
利用SET的不可重复特性即可解决楼主的问题.
------解决方案--------------------
用map装入,在转换成数组。。。
------解决方案--------------------
探讨
利用SET的不可重复特性即可解决楼主的问题.

------解决方案--------------------
Java code

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class Test
{
    public static void main(String[] args)
    {
        char[] c = {'a','a','c','d','b','c','b','b','a'}; 
        char[] ret1 = change1(c);
        char[] ret2 = change2(c);
        
        for(char ch: ret1)
        {
            System.out.println(ch);
        }
        
        for(char ch: ret2)
        {
            System.out.println(ch);
        }
    }
    
    /**
     * 筛选的结果是按插入的顺序排序的
     * @param chs 源字符数组
     * @return 结果字符数组
     */
    public static char[] change1(char[] chs)
    {
        List<Character> list = new ArrayList<Character>();
        
        for(char ch: chs)
        {
            if(!list.contains(ch))
            {
                list.add(ch);
            }
        }
        
        char[] ret = new char[list.size()];
        
        for(int i = 0; i < list.size(); i++)
        {
            ret[i] = list.get(i);
        }
        
        return ret;
    }
    
    /**
     * 筛选的结果是按自然顺序排序的(即字典排序)
     * @param chs 源字符数组
     * @return 结果字符数组
     */
    public static char[] change2(char[] chs)
    {
        Set<Character> set = new TreeSet<Character>();
        
        for(char ch: chs)
        {
            set.add(ch);
        }
        
        char[] ret = new char[set.size()];
        int index = 0;
        
        for(char ch: set)
        {
            ret[index++] = ch;
        }
        
        return ret;
    }
}

------解决方案--------------------
可以试试HashMap
------解决方案--------------------
HashMap
------解决方案--------------------
把这玩意儿一个一个拿出来装到SET中,然后一个一个拿出来,装到char[] r中?
------解决方案--------------------
1.最简单用 Set容器
2.就是用过滤器了