cha[]问题~~~~~求助
char[] c = {'a','a','c','d','b','c','b',,'b','a'};
只要出现过的元素就放进char[] r里,重复的不能放进去。
结果是char[] r = {'a','b','c','d'};
[解决办法]
利用SET的不可重复特性即可解决楼主的问题.
[解决办法]
用map装入,在转换成数组。。。
[解决办法]
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.就是用过滤器了