zoukankan      html  css  js  c++  java
  • 接口三

    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 {
        
    }
  • 相关阅读:
    Centos7下安装Oracle11g r2图形化界面数据库
    power designer 16.5 使用总结[转]
    mybatis-plus忽略映射字段
    mybatis-plus快速入门使用
    git本地项目代码上传至码云远程仓库总结【转】
    北京Java笔试题整理
    linux下启动和关闭tomcat服务的方式
    SpringMvc支持跨域访问,Spring跨域访问,SpringMvc @CrossOrigin 跨域[转]
    mybatis中的#和$的区别
    Spring官网下载dist.zip的几种方法
  • 原文地址:https://www.cnblogs.com/jgjk/p/7252737.html
Copyright © 2011-2022 走看看