首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

cha[]有关问题~

2011-12-27 
cha[]问题~~~~~求助char[] c {a,a,c,d,b,c,b,,b,a}只要出现过的元素就放进char[] r

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.就是用过滤器了

热点排行