1. Collection集合:
TreeSet: 以有序状态保持并可防止重复,每次都会自动的按字母顺序排序
HashMap: 可用成对的 name/value 来保存与取出
LinkedList: 针对经常插入或删除中间元素所设计的高效率集合
HashSet: 防止重复的集合,可快速的照相相符的元素
2. Collections.sort(List list) 方法,对 list 按字母排序
3. System.out.println(a) 会自动调用 a.toString() 方法
==============================================================
1. 关于泛型知道的三件事情:
a. 创建被泛型化类的实例 eg: new ArrayList<Song>()
b. 声明与指定泛型类型的变量 eg: List<Song> songList = new ArrayList<Song>()
c. 声明(与调用)取用泛型类型的方法
eg: void foo(List<Song> List)
x.foo(songList)
2. ArrayList 的说明文件
public class ArrayList<E> extends AbstractList<E> implements List<E>..
{
public boolean add(E o)
.
.
.
}
E 部分会用你所声明与创建的真正类型来取代,ArrayList 是 AbstractList 的子类,所以指定给 ArrayList 的类型会自动地用在 AbstractList 上 ,E类型也会用在 List 这个接口上。
3. 使用未定义在类声明的类型参数
public <T extends Animal> void takeThing(ArrayList<T> list)
在返回类型之前,这个方法意味着 T 可以是"任何一种 Animal" ,因此 你可以使用
ArrayList<Dog>, ArrayList<Cat> 或者 ArrayList<Animal> 来调用上面的方法
4. public static <T extends Comparable<? super T>> void sort(List<T> list)
sort() 方法只能接受 Comparable 对象的 list. 这里的 Comparable 是一个接口
5. 从泛型的观点来说,extend 代表 extend或implement。它代表"是一个...",且不管是接口或类都适用。
6. public static <T> void sort(List<T> list, Comparator<? super T> c)
java.util Interface Comparator<T> 有两个方法:
int compare(T o1, T o2)
boolean equals(Object obj)
如果传 Comparator 给 sort()方法,则排序是由Comparator而不是元素的compareTo()方法来决定
7. sort() 规则:
1. 调用单一参数的 sort(List o) 方法代表由 list 元素上的 compareTo() 方法来决定顺序。因此元素必须要实现 Comparable 这个接口。
2. 调用 sort(List 0,Comparator c) 方法代表不会调用 list 元素的 compareTo()方法,而会使用 Comparator 的 compare() 方法。这意味着 list 元素不需要实现 Comparable。
8. List:是一种知道索引位置的集合,可以有多个元素引用相同的对象。
Set: 不允许重复的集合,不会有多个元素引用相同的对象。
Map: 使用成对的键值和数据值,Map 会维护与 key 有关联的值。两个 key 可以引用相同的对象,但 key 不能重复
9. 自创的类没有覆盖equals方法,那你的类使用equals和使用==会得到同样的结果,==比较的是地址,equals比较的是值
10. HashSet 检查重复与否:hashCode() 与 equals() 相关规定:
1> 如果两个对象相等,则 hashcode 必须也是相等的。
2> 如果两个对象相等,则其中一个对象调用 equals() 必须返回 true
3> 如果两个对象有相同的哦 hashcode 值,他们也不一定相等
4> 如果 equals() 被覆盖过,hashCode() 也必须被覆盖
5> 如果你没有 override 过 hashCode(),则 class 两个对象怎样都不会被视为相同的,hashCode() 的默认行为是在 heap(堆)上对象产生独特的值
6> equals() 的默认行为是执行 == 的比较,也就是说会去测试两个引用是否对上 heap 上同一个对象。如果equals() 没有被覆盖过,两个对象永远都不会被视为相同的
11. TreeSet 在防止重复上面与 HashSet 是一样的。但它还会一直保持集合处于有序状态。如果使用 TreeSet 默认的构造函数,它工作起来就像 sort() 一样使用对象的compareTo() 方法来处理。但也可以选择传入 Comparator 给 TreeSet 的构造函数。
12. 要使用TreeSet,集合中的元素必须是:有实现 Comparable 类的 compareTo() 或 有实现 Comparator<T> 类的 compare(T t1,T t2) ;来创建 TreeSet。
======================================================================
1. 数组的类型是在运行期间检查的,但集合的类型检查只会发生在编译期间
2. ArrayList<? extends Pet> 你可以调用 list 中任何元素的方法,但不能加入元素
3. public <T extends Animal> void takeThing(ArrayList<T> list)
public void takeThing(ArrayList<? extends Animal> list) 两者效果一样
分享到:
相关推荐
Collection集合
一个php中的Collection集合类
b) 在main()方法中,按以下步骤编写代码:向集合中添加以下cat对象:“波斯猫”,“白色”,2“折耳猫”,“灰色”,1“加菲猫”,“红色”,3“机器猫”,
Collection 是所以集合的基类,该实例主要对Collection集合的成员函数的练习以及Iterator和foreach的遍历集合的练习,试用与java/C++ 新手。。
Collection集合结构图
分享一个php中的Collection集合类,需要的朋友们可以下载使用。
Collection集合的副本
java中collection集合
Collection聚合了项目搭建的一些基本模块,节约开发者时间,协助项目的快速搭建,RecyclerView Adapter 网络请求 MVP 基本Base,能够满足一个项目的基本实现,框架中暂时还没有把数据库和SharePrefence添加进去,后续...
Java__Collection集合.mp4
collection集合类
day07Collection集合_泛型.md
Collection集合了项目的一些基本模块,节省了开发人员的时间。.zip,collection聚合了项目的一些基本模块,节省了开发人员的时间。
java集合框架总结 Collection体系结构 ArrayList源码解读 HashMap HashSet 深入讲解java集合框架
主要介绍了Java Collection集合遍历运行代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Collection集合的剖析和底层的实现类以及不同实现类之间的区别,着重于底层的数据结构和存储方式
纯手工绘图,整理不易,不喜勿喷
Iterator迭代器对象在遍历集合时,内部采用指针的方式来跟踪集合中的元素,在调用Iterator的next()方法之前,迭代器的索引位于第一个元素之前,不指
java中各种集合详解! 集合(集合类的对象)是用来管理其他若干对象的。它类似于C++标准模板库中的容器,不过在JAVA的集合类的对象中可以用来存放多种类型的对象。 接口和类共同构成了一个集合框架,集合的概念,一...