本文主要是介绍Java集合框架学习笔记11.18,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.集合的概念
对象的容器,实现了对多个对象进行操作的常用方法
和数组区别:
(1)数组长度固定,集合长度不固定
(2)集合只能存储引用类型
2.Collection父接口
Collection父接口:无序,无下表,不能重复
使用:
先用接口下的类定义一个对象容器
然后
XX.add(A)为增加对象
XX.remove(A)为删除对象
XX.size()是查看大小
XX.toArray(转化成数组)
补充:
Arrays.asList(数组),产生新的集合,但是不能增删
调用静态类Collections的方法
Collections.binarySearch(二分查找)
Collections.sort(排序)
Collections.reverse(反转)
Collection.shuffle(打乱)
Collections.copy(要复制的,被复制的)(但要大小一样)
直接用
遍历:
使用迭代器(迭代器专门用来遍历集合的一种方式)(Iterator是集合的方法,创建接口)
hasNext()
next
remove删除当前元素
判断:
contains()
equals
hashcode给个哈希值
3.List接口与实现类(ArrayList,LinkedList)
List接口:有序,有下表,元素可重复
常用方法:
get(位置)获取该位置的数
add(位置,对象);插入元素
addAll(位置,集合);插入集合的元素
indexOf返回角标
遍历:
新增可以使用列表迭代器
previous是从后往前
next是从前往后
实现类:
ArrayList※,数组结构,查询快,增删慢,效率快
Vector,数组结构,查询快,增删慢,效率慢
可以用.Enumeration创建枚举器(跟迭代器差不多)
LinkedList,链表结构实现,增删快,查询慢
4.泛型
泛型就是把类型作为参数传递。
有泛型类,泛型接口,泛型方法。
<大写字母,...>T称为类型占位符,表示一种引用类型
使用:
泛型类:
类名+<T>
T t;使用泛型类定义
public T show(T t){使用泛型类做方法
sout.t
}
名<引用类型> 名 = new 名<类型>() 使用泛型类创建对象
泛型接口:
接口名+<T>
泛型方法:
<T> 返回值类型
定义<T> void XX(T t){ }
使用XX(A)
会根据A的类型自动补T
泛型集合:
默认为Object影响使用,可以改成其他
5.Set接口与实现类(HashSet,TreeSet)
Set接口:无序,无下表,元素不能重复
方法全部继承Collection
使用指令与List相似
add,remove,clear(),iterator
实现类:
HashSet,两次比较,会调用hashcode和equals进行确认,如果相同,会认为重复,如果不同,会形成链表
TreeSet,红黑树,基于排序顺序实现,用接口SortedSet自动排序,元素必须继承Comparable接口,元素必须实现CompareTo,通过CompareTo方法确定是否重复(方法返回0为重复)
6.Map接口与实现类
Map接口的特点:
用来储存任意键值对,键不可能重复,值可重复
方法:
put(key,balue)存入
get(key)根据键获取对应的值
keyset()返回key的集合,可以用Set接着
entryset()返回类型为map.Entry的集合
containsKey比较键
containsValue比较值
遍历:
调用实现类map对象的keySet方法,返回含Key的Set集合
调用实现类map对象的entrySet方法,返回类型为Map.Entry的映射对的Set集合,用get(效率更高)
实现类
HashMap【重点】
Hashtable【不常用】
Properties【用于配置文件的读取】
TreeMap,基于排序顺序实现,用接口SortedSet自动排序,元素必须继承Comparable接口,元素必须实现CompareTo,通过CompareTo方法确定是否重复(方法返回0为重复)
7.总结
这篇关于Java集合框架学习笔记11.18的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!