安卓培训(java篇)第九天—容器
容器又叫集合,可以存放不同类型的元素,且空间足倍增加;
区分:Collection与Map没有继承关系;
Collection常用方法:
size():容器的容量;
clear():清除容器当中所有的元素;
add(Object o):添加任意类型的元素;
remove(Object o):移除指定的元素;
removeALL(Collection c):移除指定的容器;
contains(Object o):判断给定的元素是否包含在容器中;
Set接口:无序不可重复;
什么是无序?无序和随机之间的区别?
答:首次执行代码,输出结果是无序的,而一旦执行一次过后,输出结果顺序不会再变化,除非对程序进行增删操作;
无序仅限第一次执行,随机每次执行都不一样;
实现类:HashSet、TreeSet;
常用构造方法:new HashSet(); new HashSet(Collection c);
Set没有额外的方法,所以它的所有方法都来自Collection里面的方法;
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在容器中最后一次出现的索引值;
打包和解包:
打包:把基础类型转变成对象;Integer i=new Integer(1);
解包:把对象转变成基本类型;int a=new Integer(1);
Iterator:
迭代器:遍历数组或容器,但与循环不同,迭代只遍历一次,且若遍历中途有停止,再继续遍历时会从上次停止的地方开始遍历,而不像循环从头开始;
Collection接口默认都有iterator()方法;
常用方法:
hasNext();//判断游标右边是否还有元素;
next();//返回Object类型,给定容器具体的某个元素值,并继续判断下次;
remove();
增强for循环foreach:
语法:for(类型 变量名:数组或容器名){<输出变量名就可以遍历>}
优点:遍历极快
缺点:没有下标,不能用来排序;除了遍历,没有提供其它方法了;
泛型:
为什么要有泛型?
答:让指定类型变成唯一性;可以提高代码的运行效率;
语法:类名<应用类型> 对象名=new 类名<引用类型>();
equals()和hashCode()方法:
注意:当有对象存在时,记得要重写equals()和hashCode();
equals():只负责比较两个对象的值是否相等;
hashCode():判断两个对象是否指向同一个对象(引用),并返回哈希码值;
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);//删除给定的元素;
课后练习:
设计一个程序,基于泛型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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。