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. Java Web项目部署Tomcat运行出错

    1.在部署Java Web项目的过程中,启动Tomcat出现报错提示 具体报错如下: Could not load the Tomcat server configuration at \Server ...

  2. WebService之CXF注解之三(Service接口实现类)

    ITeacherServiceImpl.java: /** * @Title:ITeacherServiceImpl.java * @Package:com.you.service.impl * @D ...

  3. An internal error occurred during: "Requesting JavaScript AST from selection". GC overhead limit exc

    1.错误描述 An internal error occurred during: "Requesting JavaScript AST from selection".     ...

  4. freemarker写select组件(四)

    freemarker写select组件 1.宏定义 <#macro select id datas value="" key="" text=" ...

  5. flask中jinjia2模板引擎使用详解5

    接上文 宏 可以理解为函数,即把一些常用的模板片段做好封装,以便于重用,减少工作量和维护难度. 宏的定义很简单: {%macro xxx()%} ##这里写内容 {%endmacro%}   下面引用 ...

  6. C#属性的使用--C#基础

    1.属性的作用:保护字段,对字段取值与赋值进行限定 2.属性的使用: _name(属性名)public [对应字段类型] 属性名Name{ get{return _name;} set{_name=v ...

  7. 解决Android Studio 3.0导入module依赖后unable to merge index

    解决Android Studio 3.0导入module依赖后unable to merge index 项目需要使用im, 在项目里导入了腾讯im的几个module依赖, 项目无法编译, 报错una ...

  8. 洛谷 P1564 膜拜

    题目出处 s[i]表示前i个人对神牛的膜拜情况,如果膜拜神牛甲则s[i]=s[i-1]+1否则s[i]=s[i-1]-1.那么如果|s[i]-s[j]|<=m或者=i-j+1(也就是人数差不超过 ...

  9. c++标准头文件

    C++标准库的所有头文件都没有扩展名.C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能. <cname>形式的标准头文件[ <complex>例外]其 ...

  10. 实用的Docker入门

    1 Docker概述 Docker和虚拟机一样,都拥有环境隔离的能力,但它比虚拟机更加轻量级,可以使资源更大化地得到应用.首先来看Docker的架构图: 理解其中几个概念: Client(Docker ...