博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
复习Java集合框架&Java面试题数据库如何分库分表&生活【记录一个咸鱼大学生三个月的奋进生活】011
阅读量:2059 次
发布时间:2019-04-29

本文共 2271 字,大约阅读时间需要 7 分钟。

记录一个咸鱼大学生三个月的奋进生活011

复习Java(集合框架)

集合框架是用于表示和操纵集合的统一体系结构,其中包含了多个功能强大的集合对象,集合用于存储、检索和操纵数据。

集合框架的优点:

提供有用的数据结构和算法,从而减少编程工作
提高了程序速度和质量,因为它提供了高性能的数据结构和算法
可以方便地扩展或改写集合

Collection接口

Collection接口只存值,无序,可重复,能存null

Collection接口又包含了List接口和Set接口

List接口

List接口有序,可重复,能存null

实现List接口的有Vector类、ArrayList类、LinkedList类

① Vector类:

它具有类似数组的数据结构,而且是动态的,容量可以递增
可以存储重复元素,其元素是有序排列的
线程安全的,可以进行多线程操作

Vector的构造方法:

Vector () —— 创建一个空Vector
Vector (int initialCap) —— 创建一个空 Vector ,其初始大小由 initialCap 指定,容量增量为0
Vector (int initialCap,int inc) —— 创建一个空 Vector ,初始容量由 initialCap 指定,容量增量由 inc 指定
Vector (Collection c) —— 创建一个包含给定集合元素的新Vector ,元素顺序为集合迭代器返回的顺序

Vector的常用方法:

add(Object o) —— 向Vector中添加一个对象
get(int i) —— 返回指定索引的元素
remove(int i) —— 删除指定索引的元素
indexOf(Object o) —— 查询对象的索引
removeAllElements() —— 删除所有的元素
size() —— 包含的元素大小
isEmpty() —— 是否为空

② ArrayList类:

ArrayList对象是长度可变的对象引用数组,类似于动态数组
ArrayList是线程不安全的,不能进行多线程操作
继承AbstractList并实现List接口
遍历时多使用下标进行遍历

ArrayList的构造方法:

ArrayList() —— 创建一个空 Arraylist
ArrayList(Collection c) —— 根据给定集合的元素创建数组列表
ArrayList(int size) —— 使用给定大小创建一个数组列表,向数组列表添加元素时,此大小自动增加

ArrayList的常用方法:

add(Object o) —— 向ArrayList中添加一个对象
get(int i) —— 返回指定索引的元素
remove(int i) —— 删除指定索引的元素
clean() —— 清除ArrayList中的所有元素
indexOf(Object o) —— 查询对象的索引
size() —— 包含的元素大小
isEmpty() —— 是否为空

③ LinkedList类:

是用双向链表实现的动态数组,理论上会更快
构造方法和常用方法与ArrayList差不多

Vector、ArrayList、LinkedList的区别(重点!!)

指路之前的帖子,里面的面试题就是Vector、ArrayList、LinkedList的区别,很重要建议大家去看下:

Set接口

Set接口无序,不可重复,能存null

实现Set接口的常用的有HashSet类、LinkedHashSet类、TreeSet类

以集合的方式存储元素
不能重复存储相同的元素
不保证其元素的存储顺序,遍历时使用Iterator迭代器

List和Set的区别(重点!!)

指路之前的帖子,里面的第一个面试题就是List和Set的区别,很重要建议大家去看下:

Map接口

Map接口是键值对存储,键值对不能重复,值可重复,无序,不能存null

实现Map接口的常用的有HashMap类、Hashtable类

① HashMap类:

用于存储键/值(key/value)对应关系
ArrayList是线程不安全的,不能进行多线程操作
不保证其元素的存储顺序
可以存储Null值

HashMap的构造方法:

HashMap() —— 创建一个具有默认容量和负载系数的空映射
HashMap(int size) —— 创建一个具有指定大小的容量和默认负载系数的空映射
HashMap (Map map) —— 创建一个具有指定 map 映射的散列映射
HashMap(int size, float load) —— 创建一个具有指定的容量和指定的负载系数的空映射

HashMap的常用方法:

put(Object o, Object o) —— 按键/值对应关系向HashMap中存储元素
get(Object o) —— 按键取出元素
remove(Object o) —— 删除指定键的元素
clean() —— 清除HashMap中的所有元素
size() —— 包含的元素大小
isEmpty() —— 是否为空

② Hashtable类:

不可以存储Null值
线程安全的,可以进行多线程操作
遍历的时候可以使用枚举类型

学习Java面试题(数据库如何分库分表)

健身

照片分享

作者:王皮四点  作品名:华灯初上  出自500px社区

2021.06.16  by wyh

转载地址:http://ynalf.baihongyu.com/

你可能感兴趣的文章
android GLSurfaceView匹配屏幕宽度及视频宽高比设置view大小
查看>>
解决用android Studio开发不能去除标题栏的问题
查看>>
[Python] windows下360急速浏览器获取URL的Headers
查看>>
AndroidStudio 清除无用资源压缩项目大小
查看>>
AndroidStudio导入其他来源项目容易出现的问题
查看>>
VS解决error C2664: “DWORD GetCurrentDirectoryW(DWORD,LPWSTR)”: 无法将参数 2 从“char [260]”转换为“LPWSTR
查看>>
VS项目方便直接配置openCV环境
查看>>
VS项目方便直接配置openCV环境
查看>>
Vs 使用openCV 3.0+ 出错error C2872: “ACCESS_MASK”: 不明确的符号
查看>>
VS 使用#pragma 管理代码块
查看>>
VS判断windows动态链接库是x86还是x64(以vs2015为例)
查看>>
windows下VS2015使用MSVC编译FFmpeg库
查看>>
windows下VS使用FFmpeg被声明为已否决的解决方案
查看>>
Win7 x64环境下Python3.6安装使用提示丢失api-ms-win-crt-runtimel1-1-0.dll
查看>>
c++ Lambda函数
查看>>
c++仿函数
查看>>
C++ STL bind1st和bind2nd
查看>>
windows下Python安装requests
查看>>
目的:解决Ubuntu 使用gedit出现No protocol specified (gedit:14333):
查看>>
解决Ceph集群Mon和OSD网络变更或者ip(主要是mon)变换后,集群不能正常工作问题
查看>>