DAY11关于集合的学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAY11关于集合的学习笔记相关的知识,希望对你有一定的参考价值。
成员变量 === 属性 === 字段 === Field
成员函数 === 方法 === Method
构造函数 === 构造器 === 构造子 === Constructor
类 === Class
List接口中常用类
--------------
Vector:线程安全,但速度慢,已被ArrayList替代。
ArrayList:线程不安全,查询速度快。
LinkedList:链表结构,增删速度快。
取出LIst集合中元素的方式:
get(int index):通过脚标获取元素。
iterator():通过迭代方法获取迭代器对象。
关于Hashcode
--------------
1、hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的;
2、如果两个对象相同,就是适用于equals(Java.lang.Object) 方法,那么这两个对象的hashCode一定要相同;
3、如果对象的equals方法被重写,那么对象的hashCode也尽量重写,并且产生hashCode使用的对象,一定要和equals方法中使用的一致,否则就会违反上面提到的第2点;
4、两个对象的hashCode相同,并不一定表示两个对象就相同,也就是不一定适用于equals(java.lang.Object) 方法,只能够说明这两个对象在散列存储结构中,如Hashtable,他们“存放在同一个篮子里”。
key.hash==p.hash && (key==p || key.equals(p)); //判断元素唯一性(Boolean)
迭代器
-------------------------
迭代是取出集合中元素的一种方式。
因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器。
用法示例:
//常规FOR循环使用迭代方法 for(Iteratoriter = iterator();iter.hasNext(); ) { System.out.println(iter.next()); } //while循环 Iteratoriter = l.iterator(); while(iter.hasNext()) { System.out.println(iter.next()); }
TIP1:
迭代注意事项
迭代器在Collcection接口中是通用的,它替代了Vector类中的Enumeration(枚举)。
迭代器的next方法是自动向下取元素,要避免出现NoSuchElementException。
迭代器的next方法返回值类型是Object,所以要记得类型转换。
TreeSet
---------------
1.使用比较方法判断对象是否重复。
2.比较方法实现有两种
a)自定义Comparator比较器,和TreeSet关联。
b)让javaBean实现Comparable接口,实现CompareTo()方法。
3.TreeSet可以容纳null元素。
4.TreeSet可以使用降序排列。
通过descendingIterator()方法得到降序迭代器实现。
5.TreeSet默认升序排列。
本文出自 “yehomlab” 博客,转载请与作者联系!
以上是关于DAY11关于集合的学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
《从零开始学Swift》学习笔记(Day 11)——数据类型那些事儿?