java面向对象中的集合
1.学习集合的原因?
A.数组是面向过程的,集合是面向对象的。
B。集合是类,具备类的封装,继承,多态。。。超强功能。
C。数组是固定长度,集合是可变长度
D。数组没办法获得真实的元素个数;集合可以。
E。数组只有一种固定的存值方法(顺序结构存值);集合具有多种方式,适合于多种场合。
2.集合的家庭成员:
(第一块:)
Collection 【无序,不唯一】 Map【key , value】
【无序,唯一】【无序,不唯一】
list 【有序,不唯一】 set【无序,唯一】
ArrayList LinkedList Vector HashSet TreeSet HashMap
| | | | |
【顺序存储】 【链表存储】 【hash表】 【二叉树】 【哈希表+键值对】
3.介绍ArrayList:
存值方式: 顺序结构存储。
使用场合: 遍历和随机访问。
常用方法:
增加:add();addAll(Collection);
删除:remove(Object或者下标);removeAll(Collection);
查找:contains(Object);containsAll(Collection);size();get(下标);
迭代:Iterater:
使用:
Iterator iter =list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
4.介绍Vector 和 ArrayList的区别:(了解)
1.相同点:原理相同,底层代码相同,方法相同
2.不同:Vector 线程安全的;每次增长1倍;老版本jdk提供操作集合的接口
ArrayList 效率高,线程不安全;每次增长0.5倍;ArrayList是新版本提供集合的接口。
5.介绍LinkedList:
存值方式:链表结构
使用场合:删除和修改
方法:
增加:add();addAll();addFirst();addLast();
删除:remove();clear();removeAll();
removeFirst();removeLast()
查找:contains("北京");containsAll(list1);size();get();
getFirst();getLast();
迭代:Iterater:
对比LinkedList 和ArrayList的区别:
1.存值方式不一样:顺序结构,链表结构
2.使用场合不一样:遍历和随机访问;删除和修改
6. 介绍泛型:
学习泛型的原因?
保证集合在【编译期】存值时没问题;那么运行期取值也没问题。
作用: 在【编译期】,控制接收元素的类型。
泛型用在集合:
LinkedList<Integer> link = new LinkedList<Integer>();
link.addFirst(567);
link.add(12);
link.add(111);
System.out.println(link);
Iterator<Integer> list=link.iterator();
while(list.hasNext()){
Integer i=list.next();
System.out.println(i+1);
}
7.集合的第二块:
Map (键 值对,key无序唯一;value 无序 不唯一)
HashMap TreeMAP HashTAble
(7.1)介绍:HashMap
存值方式: hash表存储键值对。
HashMap vs Hashtable (了解)
1. Hashtable 老jdk版本;HashMap 新版本
2. Hashtable 线程安全; HashMap 效率高,线程不安全。
3. HashMap 实现Map接口 ;Hashtable 继承 Dictionary。
4.hashMap允许空值,hashtable不允许空值
相同:原理,算法,存值方式相同。
方法:
增加: put(011, "北京");putAll(map1);
删除:remove(key); ---根据key ,去删除 value
查询:get(key)--根据key ,去删除 value。
keySet()---返回键的集合
values()---返回值的集合
containsKey(key)---如果存在由指定的键映射的“键-值对”,返回true
java面向对象中的集合的更多相关文章
- 第35节:Java面向对象中的多线程
Java面向对象中的多线程 多线程 在Java面向对象中的多线程中,要理解多线程的知识点,首先要掌握什么是进程,什么是线程?为什么有多线程呢?多线程存在的意义有什么什么呢?线程的创建方式又有哪些?以及 ...
- java多线程中并发集合和同步集合有哪些?区别是什么?
java多线程中并发集合和同步集合有哪些? hashmap 是非同步的,故在多线程中是线程不安全的,不过也可以使用 同步类来进行包装: 包装类Collections.synchronizedMap() ...
- Java 8中处理集合的优雅姿势——Stream
在Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增.删.改.查.聚合.统计.过滤等操作.相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和数组的处理并不是很便 ...
- java面向对象中四种权限(private,protected,public,友好型)详解
转自http://blog.csdn.net/a1237871112/article/details/50926975 及http://blog.csdn.net/blackmanren/articl ...
- JAVA 面向对象中的多态
多态是继封装.继承之后,面向对象的第三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态. Java作为面向对象的语言,同样可以描述一个 ...
- java方法中Collection集合的基本使用与方法
集合类的由来,对象用于封闭特有数据,对象多了需要存储,如果对象的个数不确定就使用集合容器进行存储. 集合特点:1.用于存储对象的容器.2.集合的长度是可变的.3.集合中不可以存储基本数据类型值. 集合 ...
- 第33节:Java面向对象中的异常
Java中的异常和错误 Java中的异常机制,更好地提升程序的健壮性 throwable为顶级,Error和Exception Error:虚拟机错误,内存溢出,线程死锁 Exception:Runt ...
- Java开发中各种集合框架简介
在大数据MapReduce作业开发中,我们经常会遇到一些大小表的join,这是如果这个小表足够“小”的话,我们可以使用进行“map-join-side”,这要就可以有效的降低reduce端的压力,但是 ...
- Java面向对象中this关键字详解 意义+实例讲解【hot】
this关键字 >>>便于理解简单的定义 this关键字可以简单的理解为,谁调用this所在的方法,this就是谁. 类的构造函数与getter.setter方法常用到this关键字 ...
随机推荐
- python无网安装psycopg2
1. 问题描述 python项目要获取greenplum数据库数据,gp底层是postgresql,需要使用python的第三方工具包psycopg2操作数据库,但是问题是服务器上没有网络,无法在 ...
- Linux日志系统分析:rsyslog、syslog和klog
参考博客: https://blog.csdn.net/lidonghat/article/details/55004280 https://blog.csdn.net/u012247418/arti ...
- 1.jdk1.7到jdk1.8 Map发生了什么变化(底层)?
1.8之后hashMap的数据结构发生了变化,从之前的单纯的数组+链表结构变成数组+链表+红黑树.也就是说在JVM存储hashMap的K-V时仅仅通过key来决定每一个entry的存储槽位(Node[ ...
- freemarker实现单元格动态合并-行合并
项目需求:项目中有个需求,需要将一些数据库中的数据根据需求导出,生成一个word,研究了一些技术,其中包括POI.freemaker,对比了一下实现过程及技术难度没最终使用了freemaker; 原始 ...
- Eclipse安装STS插件
由于Spring的配置文件较多,基于Eclipse配置也比较复杂.为了提高开发的效率,建议使用STS开发工具开发,或者在Eclipse安装一个STS插件. 在开发者配置bean的class时候能够根据 ...
- 使用docker搭建gitlab服务器
简单记录Docker的使用和GitLab的搭建 Docker基础篇 没有sudo权限 安装docker 基础命令 docker安装mysql和配置 Dockerfile常用命令 制作镜像 发布镜像 容 ...
- c++小游戏——五子棋
#include<iostream> #include<iomanip> #include<cstring> using namespace std; const ...
- 第一届合天杯河北科技大学网络安全技术大赛 web6 writeup
- 自实现input上传指定文件到服务器
遇到问题,解决问题,记录问题,成长就是一步一步走出来的. 一.添加 input 标签 我的工作中遇到了,需要上传pdf文件到服务器的需求,而且只能上传pdf文件,accept指定了 pdf 类型. & ...
- cordova把我搞晕了
天啦,搞了几十次,这次求你成功好吗?