Collection: add(Object obj) addAll(Collection c) size() clrear() isEmpty()
remove(Object obj) removeAll(Collection c) retainAll(Collection c)
contains(Object obj) containsAll(Collection c) hashCode()
iterator(), toArray()
–>List:有序,可以重复存储元素
特有的: add(int index, Object obj) remove(int index)
Object set(int index, Object obj)
Object get(int index) int indexOf(Object obj)
int lastIndexOf(Object obj) List subList(int from, int to)
–>ArrayList:内部是一个数组结构,不同步,代替了Vector,查询快
–>LinkedList:内部数据结构是一个链表, 不同步,增删快
–>Vector:内部数据结构也是数组,同步的。增删查都慢
–>Set:无序,元素唯一
Set接口与Collection接口中的方法一致
–>HashSet:内部数据结构是哈希表,不同步。
怎么保证存储的元素唯一呢?
通过对象的hashCode和equals方法来确定的
如果对象的hashCode不同,就不用再判断equals方法了,直接存储到集合中
如果对象的hashCode相同,就需要根据equals方法来进行判断
如果结果为true,视为相同,不再进行存储
如果为false,视为不同,就进行存储(不建议)
注意:如果元素存储到hashSet中,必须要覆盖hashCode和equals方法
尽量这两个方法保持一致
–>LinkedHashSet:是其子类,当我们遍历集合的时候,是按照我们添加顺序进行的
频繁的遍历,但是增删比较少,可以选择这种集合
–>TreeSet:可以对元素进行排序,是不同的
判断元素唯一性的方式:就是根据比较方法返回的结构,0(相同), 不存储
排序的方式?
1.元素自身具有比较的功能,实现Comparable接口,重写compareTo方法
2.元素自身不具有比较功能,没有实现Comparable接口,这个时候怎么办呢?
定义一个类,实现Comparator接口,重写compare方法
把这个类创建的对象作为参数,通过构造函数传递给TreSet集合
Map: 一次添加一对元素, Collectio一次添加一次元素
Map也成为双列集合, Collection也成为单列集合
Map中key必须唯一
put(Object key, Object value) remove(Object key) clear(), size()
isEmpty() Object get(Object key) boolean containsKey(Object key)
boolean containsValue(Object value)
循环方式?
1. keySet –>得到key的集合,循环得到每一个key,通过get(key),获取value
2.entrySet –>得到key和value整体的一个Map.Entry集合,循环得到每一个Map.Entry对象
通过调用getKey()和getValue(),获取key和value
–>HashMap:内部数据结构是哈希表,不同步。允许null作为key或者value
–>LinkedHashMap:是其子类,可以按照添加进map的顺序进行遍历
–>TreeMap:内部数据结构是二叉树,是不同步的。可以对key进行排序
–>HashTable:很少用
–>Properties:根据IO来一起使用
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114805.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...