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-集合框架的更多相关文章

  1. JAVAOOP集合框架

    集合框架三大内容:对外的接口.接口的实现和对集合运算的算法 集合有三大类接口:List.Set.Map 共同点:都是集合接口,都可以用来存储很多对象 不同:Collection接口存储一组不唯一(允许 ...

  2. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  3. 【目录】JUC集合框架目录

    JUC集合框架的目录整理如下: 1. [JUC]JUC集合框架综述 2. [JUC]JDK1.8源码分析之ConcurrentHashMap(一) 3. [JUC]JDK1.8源码分析之Concurr ...

  4. java面试题——集合框架

    先来看一下集合框架关系图 Collection FrameWork 如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └S ...

  5. Java使用实现面向对象编程:第七章集合框架的解读=>重中之重

    对于集合框架,是非常重要的知识,是程序员必须要知道的知识点. 但是我们为什么要引入集合框架呢? 我们之前用过数组存储数据,但是采用数组存储存在了很多的缺陷.而现在我们引用了集合框架,可以完全弥补了数组 ...

  6. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  7. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  8. Java 之 集合框架(JCF)

    1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点: ...

  9. 【集合框架】Java集合框架综述

    一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...

  10. 【集合框架】JDK1.8源码分析之Comparable && Comparator(九)

    一.前言 在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力.下面是开始我 ...

随机推荐

  1. 从1.5K到18K,一个程序员的5年成长之路

    原文地址:点击打开链接 168楼朋友批评的很有道理, 虚心接受. 我自己是开始学的时候已经错过了基础课的学习, 现在也是深受其苦的, 面临技术上的瓶颈, 需要花更多的时间补充这些知识. 希望看到此文的 ...

  2. dom文档对象模型图

  3. Java开发速度神器Lombok,Eclipse端安装使用教程

    一.Lombok简介 Lombok是一个代码生成器,可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法. 使用 ...

  4. tp5怎么实现搜索分页能保留搜索条件

    $profit=Db::view('profit','settlement_time,money,balance_account,balance_account1,did,user') ->vi ...

  5. 使用sourceTree向码云提交代码时 push 错误 (或认证失败)解决办法

     如果出现push不进去或者使用命令push认证失败时,很可能是你密码有误或者用户冲突,解决办法如下: 1.进入目录,找到文件后先备份一下 注意:appData可能隐藏了,若是隐藏,先让其显示  2. ...

  6. 新的一年新的变化!IT的大变天

    今天是一个特别的日子,祝女神朋友们,节日快乐,早点下班! 新的一年,大家又忙碌在加班加点的堆代码中,bug的陪伴使我快乐使我忧伤,想想想,也奋斗了五六百的岁月,实习期向往大城市的公司,梦想着有一天与自 ...

  7. Luogu4137:Rmq Problem/mex

    题面 传送门 Sol 这题可能是假的 离线莫队搞一搞,把数字再分块搞一搞,就行了 # include <bits/stdc++.h> # define IL inline # define ...

  8. 1.4 如何在main()方法之前执行输出“hello world”

    public class Test{ static{ System.out.println("hello world"); } public static void main(St ...

  9. 从 HelloWorld 看 Java 字节码文件结构

    很多时候,我们都是从代码层面去学习如何编程,却很少去看看一个个 Java 代码背后到底是什么.今天就让我们从一个最简单的 Hello World 开始看一看 Java 的类文件结构. 在开始之前,我们 ...

  10. tomcat环境配置 Linux 与 Windows

    Windows:例如tomcat安装在 E:\tomcat 需要在环境变量配置:CATALINA_HOME=E:\tomcat CATALINA_BASE= E:\tomcat Linux:例如tom ...