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

© 不二晨 金牌黑马   /  2019-3-11 14:12  /  1636 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

List方法

                void add(index,ele);
                boolean allAll(index,Collection);
                int indexOf(obj);
                int lastIndexOf(obj);
                object remove(index);
                Object set(index,ele);
                List subList(fromIndex,toIndex);


形参长度可变的参数

        public static void main(String[] args) {
                test("aa","bb","cc","dd");
                test(new String[]{"1","2"});
                List list = Arrays.asList("a","b","c");
        }

        private static void test(String ... str) {
        }


TreeMap
TreeMap中的所有key必须为同一个类的对象,否则会报ClassCastException

定制排序:创建TreeMap时,传入一个Comparator对象,该对象负责对TreeMap中的所有key排序。



读属性文件

                Properties properties = new Properties();
                InputStream inStream = Test7.class.getClassLoader().getResourceAsStream("es.properties");
                properties.load(inStream);
                String ip = properties.getProperty("elasticSearchIp");
                System.out.println(ip);


操作集合的工具类:Collections
                reverse(List) //反转List 集合中的元素
                shuffle(List) //对List 集合进行随机排序
                sort(List) //进行升序排序
                sort(List,Comparator) //根据比较器进行排序
                swap(List,int,int) //对i 处元素与 j 处元素进行交换

获取线程安全的集合对象
ArrayList,HashSet,HashMap...都不是线程安全的

调用Collections 的 synchronlizedXxx 方法获取纯种安全的对象集合

                List list = new ArrayList();
                List list2 = Collections.synchronizedList(list);//线程安全

                List<Person> list = new ArrayList<Person> ();
                list.add(new Person("name1",11));
                list.add(new Person("name2",10));
                Collections.sort(list,new Comparator(){

                        @Override
                        public int compare(Object obj1, Object obj2) {
                                if(obj1 instanceof Person && obj2 instanceof Person ){
                                        Person p1 = (Person) obj1;
                                        Person p2 = (Person) obj2;
                                        return p1.getAge()-p2.getAge();
                                }
                                throw new ClassCastException();
                        }
                });

                Set<Person> persons =new TreeSet<Person>(new Comparator<Person>(){
                        @Override
                        public int compare(Person p1, Person p2) {
                                return p1.getAge()-p2.getAge();
                        }
                       
                });

                Object[] objs = new Object[10];
                Person[] personss = new Person[10];
                //相等,Object是Persion的父亲,Object数组也是Persion数组的父类
                objs = personss;
               
                List<Object> objList = new ArrayList();
                List<Person> personList = new ArrayList();
                //相等,Object是Person的父亲,Object List 却不是Person List的父类
                //objList!=persionList;

        //通配符的泛型声明。只要存在通配符,写入就是非法的
        public void print(List<? extends Person> persons){
               
        }
        //要求传入的参数必须是Persion
        public void print2(List<Person> persons){
               
        }
        //在类中使用泛型方法
        //在方法的返回值使用<>前面声明泛型类型,则在方法的参数,方法体中都可以使用该泛型
        //第二个E代表返回值也是泛型
        public <E> E getProperty(int id, E obj){
                E result = null;
                return result;
        }

                Collection<Person> co = new ArrayList<Person>();
                co.add(new Person());
                co.add(new Person());
                co.add(new Person());
                co.add(new Person());
               
                //转为Persion类型的数组,new Persion[0]只是为了说明类型是什么,下标不重要
                Person[] persionArray = persions.toArray(new Person[0]);
                System.out.println(persionArray.length);

                Map<String,Person> map = new HashMap<String,Person> ();
                map.put("name1", new Person("name1",10));
                map.put("name2", new Person("name2",80));
                map.put("name3", new Person("name3",20));
               
                for(Map.Entry<String, Person> entry : map.entrySet()){
                        String key = entry.getKey();
                        Person person = entry.getValue();
                }
               
                Set<String> set = map.keySet();
                Iterator<String> it  = set.iterator();
                while(it.hasNext()){
                        String key = it.next();
                        Person person = map.get(key);
                }
泛型:泛型类,泛型方法
泛型类:类或者接口名称后使用<T>,凡类中需要用到泛型的地方都能用
泛型方法:泛型方法可以不在泛型类中



基本的Annotation

@Override,@Deprecated,@suppressWarnings

                //jdk的元注解
                @Retention(RetentionPolicy.RUNTIME)
                public @interface Hello{
                        //注解的属性
                        String major();
                        int age();
                        String school()default "name";
                       
                }
               
                //使用
                @Hello(age=12,major="java")
                public Class A{
                       
                }

---------------------
【转载,仅作分享,侵删】
作者:xinyuebaihe
原文:https://blog.csdn.net/xinyuebaihe/article/details/78003088
版权声明:本文为博主原创文章,转载请附上博文链接!

1 个回复

倒序浏览
奈斯,感谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马