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关键字 ...
随机推荐
- django基础知识之认识MVT MVC:
MVT Django是一款python的web开发框架 与MVC有所不同,属于MVT框架 m表示model,负责与数据库交互 v表示view,是核心,负责接收请求.获取数据.返回结果 t表示templ ...
- [AI开发]目标跟踪之行为分析
基于视频结构化的应用中,目标在经过跟踪算法后,会得到一个唯一标识和它对应的运动轨迹,利用这两个数据我们可以做一些后续工作:测速(交通类应用场景).计数(交通类应用场景.安防类应用场景)以及行为检测(交 ...
- Modbus 指令
本节内容: 一.S7-1200 作为Modbus RTU 主站 二.S7-1200 作为Modbus RTU 从站 三.S7-1200 作为Modbus RTU 主站 S7-1200 作为Modbus ...
- SQL Server 函数的定义及使用
一.定义函数 1. 标量值函数: 返回一个确定类型的标量值,例如:int,char,bit等 --创建标量值函数 create function func_1(@func_parameter_1 in ...
- Facebook Libra - 第一笔交易
第一笔交易 假定 运行的是Linux或者macOS系统 网络连接正常 git已安装 macOS中安装了Homebrew Linux中安装了yum或者apt-get 提交一笔交易的步骤 克隆并构建Lib ...
- 不调用free会内存泄露吗?
内存泄露的概念大家可以自行百度下,本文不做阐述.本文要讲的是在程序中分配了内存,但是最后没有使用free()函数来释放这块内存,会导致内存泄露吗?比如有如下代码: #include <stdio ...
- Q&A-Ray-20180710
Q: 如果集群多个客户端订阅会不会重复接收消息? A: 集群环境用,有另外一个参数. NodeManager类没有在框架里面: public interface INodeManager : IGra ...
- 一个简单的使用mock技术进行测试的例子
Account: public class Account { private String acountId; private long balance; public Account(String ...
- 2019暑假集训 Intervals
题目描述 给定n个闭区间[ai,bi]和n个整数ci.你需要构造一个整数集合Z,使得对于任意i,Z中满足ai<=x<=bi的x不少于ci个.求Z集合中包含的元素个数的最小值. 输入 第一 ...
- Jquery UI sortable
所有的事件回调函数都有两个参数:event和ui,浏览器自有event对象,和经过封装的ui对象 ui.helper - 表示sortable元素的JQuery对象,通常是当前元素的克隆对象 ui.p ...