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关键字 ...
随机推荐
- jquery Easy UI Datagrid(数据网格)学习心德,附API
第一步,引入主要的css样式和js文件 <meta http-equiv="Content-Type" content="text/html; charset=ut ...
- scrapy实战1分布式爬取有缘网(6.22接口已挂):
直接上代码: items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See docu ...
- 解决springboot项目请求出现非法字符问题 java.lang.IllegalArgumentException:Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
springboot版本: 2.1.5 最近使用springboot搭建了一个App后台服务的项目,开发接口的时候在本机使用postman工具做请求测试,请求返回一直很正常,但是在前端开发使用h5请求 ...
- DataGrid通过DataSet保存为xml文件,并导入
做了个小的DataGrid通过DataSet保存为xml_测试,DataGrid通过DataSet保存为xml_测试,通过dataSet.writeXML()和dataSet.readXML()方法完 ...
- Oracle粗心大意总结篇
有时候写sql语句不细心的话,很容易犯大错误,导致你纠结好久,找不到原因,慢慢总结: 错误1: SELECT * FROM( SELECT USER.*, ROWNUM AS CON FROM USE ...
- Linux 文件编程、时间编程基本函数
文件编程 文件描述符 fd --->>>数字(文件的身份证,代表文件身份),通过 fd 可找到正在操作或需要打开的文件. 基本函数操作: 1)打开/创建文件 int open (co ...
- Git介绍以及安装
Git的作者是大名鼎鼎的Linux之父Linus Torvalds. Git是一个分布式的版本控制系统,Git三个字母的含义可以理解为"Global Information Tracker& ...
- Spring+SpringMVC+mybatis maven pom文件
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- xutils3 上传文件操作——个人小计
上传文件注意: 使用KeyValue对象进行添加文件操作 int uid = 2; //普通字段的存储 requestParams.addBodyParameter("uid", ...
- 2017day2
系统模块: # Author: sonny# -*- coding:utf-8 -*-import sys; #print(sys.path);print(sys.argv);print(sys.ar ...