集合框架
来源:互联网 发布:网络摄像机ip搜索软件 编辑:程序博客网 时间:2024/06/05 14:53
集合概念
集合Collection是容器类,用来装载对象,基础类型会自动装箱,长度是不固定的,数组长度是固定的,一般开发中,80%用集合,20%用数组
集合体系
Collection
Set 无序,不重复,可以有一个null
HashSet add、remove、size
TreeSet 所有元素必须实现comparable接口List 有序,可以重复,可以有null
ArrayList 用得最多的,add、remove、get、size
Vector 同上,线程安全,效率低
LinkedList 多了位于首位操作的方法,get、remove、addMap 映射key-value(key不允许重复,可以有一个null,重复添加会被覆盖)
HashMap 用得比较多,put(key,value)、remove(key)、keySet()、values()、entrySet()
Hashtable 线程安全,不允许出现null
TreeMap 同TreeSet一样,key元素必须要实现comparable接口
List接口(除了有Collection接口方法外,还有特殊方法)
1.List是一个有序的Collection接口,可以通过下标访问元素get(i)2.可以添加可重复的元素,包括多个null元素,add(i,元素),i可以等于size,大于size会越界3.打印List的三种遍历方法 普通for循环,get(i)访问元素 增强型for循环,foreach(取的元素类型,容器名) 迭代器(解决并发修改)4.ArrayList和LinkedList在内存中有区别,各有各的特殊方法
Set接口
1.Set是一种无序,去重复的Collection集合,在add时系统“随便”排序2.HashSet打印可以用迭代器和增强型for循环3.TreeSet是一个有序,去重复的集合,不纯种的Set
排序
1.泛型:只是一种替换手段,只能放指定类型或者该类型的子类2.泛型如果是基础数据类型(升序)、String类型(字典顺序),TreeSet在add的时候就会自动排序,List可以用Collections.sort(list)排序;泛型如果是对象,需要实现comparable<>接口,重写compareTo方法 或者是 实现 comparator<>接口,重写compare方法3.comparable比较器:用自己和其他对象比较(只能创建一个比较器) Collections.sort(list); comparator比较器:用两个对象来进行比较(创建多个比较器) Collections.sort(list, new sort());
Map接口
1.没有继承Collection接口,Map提供三种集合视图:key视图、value视图、key-value视图。其中key不能重复,value可以是对象2.HashMap(Map的完美实现)提供了两个方法 put(key,value) 把一组键值放入Map get(key) 从Map集合中将key的value值取出 remove() 移除的同时,返回value的值3.遍历HashMap 提供三种视图 Set集:Set<Integer> keyset = map.keySet();把key集合提取出来,foreach遍历或者用迭代器打印出来,可以打印value value集:Collection<String> c =map.values();遍历同上,打印不了key,打印出来的顺序是key值的升序 key-value视图:Set<Entry<Integer, String>> entrySet = hm.entrySet();有点复杂,先凉一边;两种方式打印同上4.面试题:Hashtable和HashMap区别 (1)命名有问题 (2)线程同步,Hashtable同步,但是效率低 (3)HashMap键值可以是NULL,键只允许一个,Hashtable键值都不允许为null5.map重复添加key会覆盖6.TreeMap和TreeSet一样的,TreeMap和HashMap在add会自动排序,但如果要比较对象,HashMap会出错,只有TreeMap才能实现比较器,这就是有序和无序的区别
数据结构(系统中集合的处理)
1.堆栈Stack:先进后出,试用ArrayList和数组(搬家:sysotem.arraycopy)实现put、get、pop
阅读全文
0 0
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- 集合框架
- FastDFS+nginx+tomcat在linux系统的配置
- 整理:对开发者有用的英文网站合集
- 2017年7月27
- 深入理解Java虚拟机学习笔记-2.JVM垃圾回收
- Python 3 教程
- 集合框架
- UNIX环境高级编程读书笔记(2)
- LeetCode 530 Minimum Absolute Difference in BST
- hive使用方式
- stack
- Qt 实现雷达图
- bubblesort and selectionsort
- C++之模板元编程
- css的几种垂直居中的方法