JavaOOP-集合框架
1.Java集合框架包含的内容
Java集合框架为我们提供了一套性能优良,使用方便的接口和类,它们都位于在java.util包中。
Collection 接口存储一组不唯一,无序的对象。
List 接口存储一组不唯一,有序(插入顺序)的对象。
Set 接口存储一组唯一,无序的对象 。
Map接口存储一组键值对象,提供key到value的映射。Map中的key不要求有序,不允许重复。value同样不要求有序,但允许重复。
Iterator接口是负责定义访问和遍历元素的接口。
2.List接口
实现List接口的常用类有ArrayList和LinkedList。它们都可以容纳所有类型的对象,包括null,允许重复,并且都保存元素的存储顺序。
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
LinkedList采用链表(链表没有下标)存储方式。插入、删除元素时效率比较高
1.ArrayList集合类
- ArrayList<String> arrayList=new ArrayList<String>();
- arrayList.add("美美");
- arrayList.add("如花");
- arrayList.add("旺财");
- //遍历方法
- for(int i=;i<arrayList.size();i++){
- //get() 通过下标拿到集合中的每一项
- System.out.println(arrayList.get(i));
- }
2. ArrayList常用的各种方法
方法名 | 说明 |
boolean add(Object o) |
在列表的末尾顺序添加元素,起始索引位从0开始 |
void add(int index,Object o) |
在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间 |
int size() |
返回列表中的元素个数 |
Object get(int index) |
返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换 |
boolean contains(Object o) |
判断列表中是否存在指定元素 |
boolean remove(Object o) |
从列表中删除元素 |
Object remove(int index) |
从列表中删除指定位置元素, 起始索引位置从0开始 |
3.LinkedList集合类
- Person person =new Person();
- person.setName("哈哈");
- person.setAge();
- Person person2 =new Person();
- person2.setName("吼吼");
- person2.setAge();
- LinkedList<Person> linkedList=new LinkedList<Person>();
- linkedList.add(person);
- linkedList.addFrist(person2);
- for (int i = ; i < linkedList.size(); i++) {
- System.out.println(linkedList.get(i).getName());
- }
4.LinkedList的特殊方法
方法名 | 说明 |
void addFirst(Object o) |
在列表的首部添加元素 |
void addLast(Object o) |
在列表的末尾添加元素 |
Object getFirst() |
返回列表中的第一个元素 |
Object getLast() |
返回列表中的最后一个元素 |
Object removeFirst() |
删除并返回列表中的第一个元素 |
Object removeLast() |
删除并返回列表中的最后一个元素 |
3.Map接口
1.HashMap集合类
- Map<String,String> map=new HashMap<String, String>();
- map.put("CBC", "中国建设银行");
- map.put("ABC", "中国农业银行");
- map.put("ICBC", "中国工商银行");
- Set<String> set=map.keySet();
- //方式1. 利用循环 通过key值拿到valus值
- for(String key:set){
- System.out.println(key);
- //get()方法
- System.out.println(map.get(key));
- }
2.遍历HashMap的五种方式
- //方式1. 利用循环 通过key值拿到valus值
- for(String key:set){
- System.out.println(key);
- //get()方法
- System.out.println(map.get(key));
- }
- System.out.println("=============");
- //方式2. 利用循环 直接拿到Key
- Collection<String> values = map.values();
- for(String value:values){
- System.out.println(value);
- }
- System.out.println("====================");
- //方式3. 利用循环 直接拿到Key 和Value
- Set<Entry<String, String>> entrySet = map.entrySet();
- for (Entry<String, String> entry : entrySet) {
- System.out.println(entry.getKey());
- System.out.println(entry.getValue());
- }
- //方式4. 使用Itertor迭代器 遍历 Key和value
- System.out.println("========Itertor========");
- Set<String> keySet = map.keySet();
- Iterator<String> iterator = keySet.iterator();
- //循环条件 Itertor是否有下一个元素
- while (iterator.hasNext()) {
- //
- String next = iterator.next();
- System.out.println(next);
- System.out.println(map.get(next));
- }
- System.out.println("===========5==========");
- //方式5. 使用迭代器遍历 Key+Value遍历
- Iterator<Entry<String, String>> iterator2 = map.entrySet().iterator();
- while(iterator2.hasNext()){
- Entry<String, String> next = iterator2.next();
- System.out.println(next.getKey());
- System.out.println(next.getValue());
- }
3.Map的常用方法
方法名 | 说明 |
Object put(Object key, Object val) |
以“键-值对”的方式进行存储 |
Object get (Object key) |
根据键返回相关联的值,如果不存在指定的键,返回null |
Object remove (Object key) |
删除由指定的键映射的“键-值对” |
int size() |
返回元素个数 |
Set keySet () |
返回键的集合 |
Collection values () |
返回值的集合 |
boolean containsKey (Object key) |
如果存在由指定的键映射的“键-值对”,返回true |
总结
别把工作当负担,与其生气埋怨,不如积极快乐的去面对,当你把工作当作生活和艺术,你就会享受到工作的乐趣。
赵昌平 2018年3月13日21:25:10
JavaOOP-集合框架的更多相关文章
- JAVAOOP集合框架
集合框架三大内容:对外的接口.接口的实现和对集合运算的算法 集合有三大类接口:List.Set.Map 共同点:都是集合接口,都可以用来存储很多对象 不同:Collection接口存储一组不唯一(允许 ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- 【目录】JUC集合框架目录
JUC集合框架的目录整理如下: 1. [JUC]JUC集合框架综述 2. [JUC]JDK1.8源码分析之ConcurrentHashMap(一) 3. [JUC]JDK1.8源码分析之Concurr ...
- java面试题——集合框架
先来看一下集合框架关系图 Collection FrameWork 如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └S ...
- Java使用实现面向对象编程:第七章集合框架的解读=>重中之重
对于集合框架,是非常重要的知识,是程序员必须要知道的知识点. 但是我们为什么要引入集合框架呢? 我们之前用过数组存储数据,但是采用数组存储存在了很多的缺陷.而现在我们引用了集合框架,可以完全弥补了数组 ...
- Java集合框架List,Map,Set等全面介绍
Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +- ...
- Java集合框架练习-计算表达式的值
最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...
- Java 之 集合框架(JCF)
1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点: ...
- 【集合框架】Java集合框架综述
一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...
- 【集合框架】JDK1.8源码分析之Comparable && Comparator(九)
一.前言 在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力.下面是开始我 ...
随机推荐
- Java Web项目部署Tomcat运行出错
1.在部署Java Web项目的过程中,启动Tomcat出现报错提示 具体报错如下: Could not load the Tomcat server configuration at \Server ...
- 硬盘GPT分区与MBR分区的转换
如何将gpt分区更改成mbr分区? "因为笔记本电脑硬盘分区表是GPT而导致大家无法安装引导系统.需要转换为MBR分区还能顺利安装." 问题是,分区工具无法转换MBR,这里小编知道 ...
- Error Code: 1318. Incorrect number of arguments for PROCEDURE student.new_procedure; expected 0, got
1.错误描述 13:58:20 call new_procedure('2000','zhangsan') Error Code: 1318. Incorrect number of argument ...
- JavaScript解决select下拉框中的内容太长显示不全的问题
JavaScript解决select下拉框中的内容太长显示不全的问题 1.说明 有些情况下,select下拉框的内容过长,导致部分看不见: 现在通过鼠标事件,让下拉框中的内容显示完全 2.实现源码 & ...
- TypeError: Error #1034: 强制转换类型失败:无法将 mx.controls::DataGrid@9a7c0a1 转换为 spark.core.IViewport。
1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 mx.controls::DataGrid@9aa90a1 转换为 spark.core.IViewport. ...
- DirectX:函数可以连接任意两个filter
函数可以连接任意两个filter HRESULT ConnectFilters( IBaseFilter *pSrc, IBaseFilter *pDest ) { IPin *pIn = 0; IP ...
- MySQLdump常用命令
MySQLdump常用mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql还原:系统命令行: MySQL -uroot -p123456 &l ...
- Android继承AppCompatActivity实现全屏设置
转载 2016年05月25日 13:20:25 标签: android / style / android studio / 继承 4839 Android studio创建新项目后Activity默 ...
- Struts2如何实现MVC,与Spring MVC有什么不同?
Struts2采用filter充当前端控制器处理请求,filter会根据Struts.xml的配置,将请求分发给不同的业务控制器Action,再由Action处理具体的业务逻辑.Action处理完业务 ...
- Luogu3444:[POI2006]ORK-Ploughing
题意 见luogu Sol 贪心+枚举 如果知道最后一次是消除一行 那么一定消了\(n\)行 此时只要消的列最小就好了 枚举每列从上往下消到哪里,那么下面消的越小越好 那么就有了贪心策略: 先消左右的 ...