A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gss 中级黑马   /  2015-9-29 22:14  /  324 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package hashset;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.TreeSet;

public class Demo9 {
        /*
         * 纪念有意义的一天
         *  1:去除重复的 两种集合实现
         *  2:不能去除重复的,而且保证有序
         *  3:要求从键盘输入,保正有序
         *  4要求从键盘输入,遇到pig结束,然后不能去掉重复的,而且保证有序
         */
        public static void main(String[] args) {
                // demo1();
                // demo2();
                //demo3();
                //demo4();
        }

        private static void demo4() {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入字符串");
                TreeSet<Integer>ts=new TreeSet<Integer>(new Comparator<Integer>() {

                        @Override
                        public int compare(Integer n1, Integer n2) {
                                int num=n1-n2;
                                return num==0?1:num;
                        }
                });
                while(true){
                        String s=sc.nextLine();
                        if("pig".equals(s)){
                                break;
                               
                        }
                        Integer i=Integer.parseInt(s);
                        ts.add(i);
                       
                }
      System.out.println(ts);
        }

        private static void demo3() {
                /*
                 * c1表示的是即将要进入集合的元素,c2表示已经在集合中。
                         * 正序的话(默认升序)即将要进入集合的减去已经在集合中的。
                         * 倒序的话已经在集合中的元素减去即将要进入的元素
                         * (这是表示在字典中的顺序)
                 */
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入字符串");
                String s=sc.nextLine();
                TreeSet<Character> st = new TreeSet<Character>(
                                new Comparator<Character>() {

                                        @Override
                                        public int compare(Character c1, Character c2) {
                                                int num = c1.compareTo(c2);
                                                return num == 0 ? 1 : num;
                                        }
                                });
                 char arr[]=s.toCharArray();
                 for (char c : arr) {
                         st.add(c);
                       
                }
                 for (Character c : st) {
                         System.out.print(c);
                }
        }

        private static void demo2() {
                ArrayList<String> list = new ArrayList<String>();
                list.add("a");
                list.add("b");
                list.add("a");
                list.add("c");
                list.add("c");
                list.add("c");
                list.add("a");
                list.add("b");
                list.add("b");
                Treedemo(list);
                System.out.println(list);
        }

        private static void Treedemo(ArrayList<String> list) {
                TreeSet<String> ts = new TreeSet<String>(new Comparator<String>() {

                        @Override
                        public int compare(String s1, String s2) {
                                int num = s1.compareTo(s2);
                                return num == 0 ? 1 : num;
                        }
                });
                ts.addAll(list);
                list.clear();
                list.addAll(ts);

        }

        private static void demo1() {
                ArrayList<String> list = new ArrayList<String>();
                list.add("a");
                list.add("a");
                list.add("c");
                list.add("c");
                list.add("c");
                list.add("a");
                list.add("b");
                list.add("b");
                list.add("b");
                System.out.println(list);
                sort(list);
                System.out.println(list);
                sort1(list);
                System.out.println(list);
        }

        private static void sort1(ArrayList<String> list) {
                LinkedHashSet<String> lk = new LinkedHashSet<String>();// *
                                                                                                                                // 底层是链表实现的,是set集合中唯一一个能保证怎么存就怎么取的集合对象
                lk.addAll(list);
                list.clear();
                list.addAll(lk);
        }

        private static void sort(ArrayList<String> list) {
                HashSet<String> hs = new HashSet<String>();// Set集合,无索引,不可以重复,无序(存取不一致)
                hs.addAll(list);
                list.clear();
                list.addAll(hs);
        }

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马