• 接口三


    Iterator接口
    Iterator为了统一江湖, 从此出现了
    所有实现了Collection接口的容器都有一个iterator方法, 用来返回一个实现了Iterator接口的对象
    Iterator对象称作迭代器, 用来方便的实现对容器内的元素的遍历
    Iterator里面的三个方法:
    hasNext()
    next(), 重点注意: 这个方法每调用一次, 游标就往下走一个
    remove(), 尽量不要与父类的方法混着用
    for循环遍历, 1.5以后才出现的for(Objetc o : array) {}
    有优点有缺点

    (拓展思维)思考一个问题: 任何继承了Iterator接口的都要实现它的方法, ArrayList等实现类也实现了这个接口, 为什么API没有这个方法

    Set接口
    没有顺序, 但是不可以重复

    Comparable接口, Collections类
    Collections的常用算法:
    sort(List); 顺序排序
    如果需要对自定义的类进行排序, 那就必须要让其实现Comparable接口, 实现比较两个类大小的方法
    shuffle(List); 随机排列
    void reverse(List); 逆序排列(Linked效率较高)
    copy(复制完集合,需要复制的原集合); 复制集合, 前提是size()相同(长度, 和容量的区别)
    fill(List, Object);使用某个对象填充整个List
    binarySearch();(二分搜索法)

    自动打包/解包(自动拆箱/装箱)
    自动将基础类型转换为对象(装箱) Integer i=5;
    自动将对想转换为基础数据类型(拆箱) int h=5; Integer hh=h;

    泛型(Generic)(1.5之后才有泛型)
    1, 装入集合的类型都被当作Object对待, 从而失去了自己的实际类型
    2, 集合中秋出来的时候需要转型, 效率低, 易出错

    好处: 增强程序的可读性和稳定性

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    public class Text1 {
        public static void main(String[] args){
    /*        List list = new ArrayList();
            list.add("qqq");
            list.add("www");
            list.add("eee");
            list.add("rrr");
            list.add("ttt");
            
            for(int i=0;i<list.size();i++){
                System.out.println(list.get(i));
            }
            for(Object s:list){
                System.out.println(s);
            }
    
            //Iterator iter = list.iterator();
            while(iter.hasNext()){
                System.out.println(iter.next());
            }
    */
            Map map=new HashMap();
            map.put(1,"qqq");
            map.put(2,"www");
            map.put(3,"eee");
            map.put(4,"rrr");
            map.put(5,"ttt");
            
            Set set=map.keySet();
            
            for(Object o:set){
                System.out.println(map.get(o));
            }
            Iterator iter2 = set.iterator();
            while(iter2.hasNext()) {
                System.out.println(map.get(iter2.next()));
            }
            System.out.println("----------------------------");
            Collection c = map.values();
            Iterator iter3 = c.iterator();
            while(iter3.hasNext()) {
                System.out.println(iter3.next());
            }
        }
    }
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class Text2 {
    
        @SuppressWarnings("unchecked")
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    //        List list = new ArrayList();
    //        list.add("qqqq");
    //        list.add("aaaa");
    //        list.add("xxxx");
    //        list.add("cccc");
            //System.out.println(list);
            // 顺序排列
            //Collections.sort(list);
            // 随机排列
            //Collections.shuffle(list);
            //逆序排列
            //Collections.reverse(list);
            //System.out.println(list);
            List list2 = new ArrayList();
            for(int i=1;i<=10;i++) {
                list2.add(i);
            }
            int k = (Integer)list2.get(4);
    //        Collections.sort(list2);
    //        int a = Collections.binarySearch(list2, 8);
    //        System.out.println(a);
    //        Collections.copy(list2, list);
    //        Collections.fill(list2, new Person());
    //        System.out.println(list2);
            
            // 拆箱
            Integer a = 5;
            int b = a.intValue();
            // 装箱
            int c = 5;
            Integer i = new Integer(c);
            
            // 自动装箱, 拆箱
            Integer i2 = 8;
            int h = 3;
            Integer hh = h;
            
        }
    
    }
    
    class Person {
        
    }
  • 相关阅读:
    Cors 跨域 共享
    关于上传视频到七牛的一些解决方案
    网站上传视频注意点
    Node.js 的环境配置
    动态加载js
    java web项目启动时自动加载自定义properties文件
    Apache Commons 工具类介绍及简单使用
    spring常用的工具类
    shiro内置过滤器研究
    抓取Js动态生成数据且以滚动页面方式分页的网页
  • 原文地址:https://www.cnblogs.com/jgjk/p/7252737.html
Copyright © 2020-2023  润新知