安卓培训(java篇)第九天—容器

  1. 容器又叫集合,可以存放不同类型的元素,且空间足倍增加;

    区分:Collection与Map没有继承关系;

    Collection常用方法:

    size():容器的容量;

    clear():清除容器当中所有的元素;

    add(Object o):添加任意类型的元素;

    remove(Object o):移除指定的元素;

    removeALL(Collection c):移除指定的容器;

    contains(Object o):判断给定的元素是否包含在容器中;


  2. Set接口:无序不可重复;

    什么是无序?无序和随机之间的区别?

    答:首次执行代码,输出结果是无序的,而一旦执行一次过后,输出结果顺序不会再变化,除非对程序进行增删操作;

    无序仅限第一次执行,随机每次执行都不一样;

    实现类:HashSet、TreeSet;

    常用构造方法:new HashSet(); new HashSet(Collection c);

    Set没有额外的方法,所以它的所有方法都来自Collection里面的方法;


  3. List接口:有序可以重复

    实现类:ArrayList、LinkedList;

    常用方法:

    add(Object c);

    add(int index,Object o);//在指定索引index处插入一个元素o;

    remove(Object o);

    remove(int index);//如果容器有整型的元素,index优先作为下标索引;

    get(int index);//返回Object类型

    set(int index,Object o);//用指定的元素o替代指定索引index处的元素;

    size();//容器容量;

    clear();//清除

    indexOf(Object o);//返回指定元素o在容器中第一次出现的索引值;

    lastIndexOf(Object o);//返回指定元素o在容器中最后一次出现的索引值;


  4. 打包和解包:

    打包:把基础类型转变成对象;Integer i=new Integer(1);

    解包:把对象转变成基本类型;int a=new Integer(1);

     

  5. Iterator:

    迭代器:遍历数组或容器,但与循环不同,迭代只遍历一次,且若遍历中途有停止,再继续遍历时会从上次停止的地方开始遍历,而不像循环从头开始;

    Collection接口默认都有iterator()方法;

    常用方法:

    hasNext();//判断游标右边是否还有元素;

    next();//返回Object类型,给定容器具体的某个元素值,并继续判断下次;

    remove();


  6. 增强for循环foreach:

    语法:for(类型 变量名:数组或容器名){<输出变量名就可以遍历>}

    优点:遍历极快

    缺点:没有下标,不能用来排序;除了遍历,没有提供其它方法了;


  7. 泛型:

    为什么要有泛型?

    答:让指定类型变成唯一性;可以提高代码的运行效率;

    语法:类名<应用类型> 对象名=new 类名<引用类型>();


  8. equals()和hashCode()方法:

    注意:当有对象存在时,记得要重写equals()和hashCode();

    equals():只负责比较两个对象的值是否相等;

    hashCode():判断两个对象是否指向同一个对象(引用),并返回哈希码值;


  9. Map接口:<K,V>;

    KEY不能重复;

    实现类:HashMap、TreeMap、LinkedHashMap;

    常用方法:

    put(Object k,Object v);

    get(Object key);//返回key所映射的value值

    containsKey(Object o);//判断给定的元素o是否包含在容器中,如果是则返回true;

    containValue(Object o);//判断容器中的value值中是否包含给定的元素o,如果是则返回true;

    remove(Object o);//删除给定的元素;


课后练习:

  1. 设计一个程序,基于泛型Map实现3个英文单词的汉语翻译;

代码:

public class FanYi{

    public static void main(String[] args){

        HashMap m = new HashMap();

        m.put("apple","苹果");

        m.put("pear","梨");

        m.put("orange","橘子");

        for(String str:m.keySet()){

            System.out.println(str+"英文翻译:"+m.get(str));

        }

    }

}











本文出自 “” 博客,请务必保留此出处http://linyingkun.blog.51cto.com/2393912/1575543

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。