移动平台开发第四周学习总结

---恢复内容开始---

第十四章 集合框架

和C++中的集合框架类似,Java带有一组接口和类,使得操作成组的对象更为容易,这些接口和类称为集合框架。
集合也叫作容器,提供了一种方法来存储、访问和操作其元素,在Java中,元素皆为类的对象。
集合框架中的常见类型:

集合框架的大多数接口都带有实现类,一个实现类有两个版本,同步的版本和非同步的版本。

LIst和ArrayList

List是Collection最为常用的接口,相当于数组,ArrayList是最为常用的List的实现类。具有add、set、remove等方法。有两个构造方法,无参数和有参数的构造方法。并且允许存储重复的元素。

java.util.Arrays类中有asList方法;LIst接口还有用于搜索集合元素的indexOf和lastIndexOf方法。
java.util.Collections类也是一个辅助工具类,用于提供操作List和其他Collection实现的对象的方法,例如sort方法。

Iterator和for

Collection接口中有一个iterator方法,当Collection中的对象(例如ArrayList类的实例)调用这个方法时,会返回Iterator接口的对象,这个对象能够对Collection中对像进行遍历操作,相关方法有hasNext、next、remove。

上个截图中的遍历使用的是一个增强的for循环,编译器将其翻译为:
for (Iterator iterator = myList.iterator( ); iterator.hasNext( ); ) {
String element = (String) iterator.next( );
System.out.println(element);
}

Set和HashSet

Set相当于数学中的集合,但不允许存在重复的内容,最流行的实现是HashSet,但不保证元素的顺序保持不变。

Queue和LinkedList

Queue相当于一个队列接口,遵循先进先出原则,LinkedList是实现Queue的一个类。
添加方法:offer和add; 弹出方法:Remove和Poll;取头部值方法:Element和Peek。

集合间的类型转换。

Map和HashMap

Map为映射关系,键\值对,HashMap为Map的一个实现类。相关方法:put、putAll、remove、get、keySet、values、entrySet.

遇到的问题:

使用entrySet方法,返回包含的Map.Entry对象的一个Set,但该Set中的元素不能使用Map.Entry接口中的getKey()和getValue()方法。

使用getClass()方法,发现元素属于 java.util.HashMap$Node类,不知该类是否实现了Map.Entry接口。

对象的比较和排序

Arrays.sort和Collections.sort方法都定义了他们自身和需要排序的对象之间的一个协议,这个协议的形式是java.lang.Comparable接口。
接口中的compareto(obj)方法是用来设置对象之间进行比较的规则,参数obj引用了需要和该对象进行比较的对象。
sort方法会将实现了的Elephant对象当作一个Comparable对象,并在该对象中重复调用compareto来进行排序。

使用Compatator接口,实现compare方法。

第十五章 泛型

---恢复内容结束---

猜你喜欢

转载自www.cnblogs.com/20189210mujian/p/10585517.html