我们都知道集合中有set接口,而且set接口的特性之一就是:存储的元素不能重复,既然如此我们就可以利用此特性比较简单的解决一些问题。
问题一:随机产生10个1-20以内的不重复整数
思路:我们可以利用set集合来存储,这样一来它不仅可以自动筛选掉重复元素,同时也会对元素进行自然顺序的排序
测试程序:
public static void main(String[] args) { TreeSet<Integer> treeSet = new TreeSet<>(); Random random = new Random(); while (treeSet.size() < 10){ treeSet.add(random.nextInt(20)+1); } for (Integer integer : treeSet) { System.out.print(integer+" "); } }
运行结果:
3 4 5 6 7 9 10 15 18 19
问题二:从键盘获取一个字符串,把每个字符输出,重复的不要。
思路:同上面的想法一样,将字符串存入set集合,自动去掉重复字符,再输出。不用自己加很多的if()语句去进行操作,很简便。
测试程序:
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入字符串:"); String str = scanner.nextLine(); HashSet<Character> hashSet = new HashSet<>(); char[] chars = str.toCharArray(); for (int i = 0; i < chars.length; i++) { hashSet.add(chars[i]); } Iterator<Character> iterator = hashSet.iterator(); while (iterator.hasNext()){ System.out.print(iterator.next()+" "); } }
运行结果:
请输入字符串:
abcabcde
a b c d e