java8_api_集合框架

泛型表示 E,K,V,T
集合框架1
集合的概念
集合的好处
集合的层次结构
集合的概念
集合是一个包含一组对象的对象,也称为容器
集合中的每一个对象叫集合的元素
来自java.util包。
集合的好处
可以使用索引存储和获取值,效率高
提供了编译时检查
提供了比数组更丰富的功能
注意
集合是操作对象的,基本数据类型需要装箱与拆箱
集合是泛型的
集合体现了数据结构的特点,还提供了基于某些算法的类
集合框架包含
接口(设计好的大量)
实现类
算法类(典型的包含排序与查找)
有一张层次结构图
collection接口(根接口)
方法分类:
基本操作:size,isEmpty,contains,add,remove,iterator
组操作:addAll,clear,containsAll,removeAll,retainAll
聚合操作:stream,parallelStream
数组操作:toArray
比较操作:equals,hashCode
集合框架2
遍历集合(三种方式),这是一个通用操作
遍历是指一次访问集合中的所有元素
三种方式:
使用Iterator
使用for-each循环
使用forEach方法
package java_20180212_api_collections; import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class CollectionDemo { public static void main(String[] args) { Collection<String> c1=new ArrayList<>();
c1.add("a");
c1.add("b");
c1.add("c");
c1.add("d");
c1.add("e");
Iterator<String> iter=c1.iterator();
while (iter.hasNext()) {
// System.out.println(iter.next());
iter.next();
// iter.remove();
}
System.out.println(c1.size());
System.out.println("===============");
for (String s : c1) {
//c1.remove(s)不能这样子用
System.out.println(s);
}
System.out.println("===============");
//传一个lambda表达式
// c1.forEach(s->System.out.println(s));
//传一个方法引用
c1.forEach(System.out::println);
}
}
集合框架3
List接口
ArrayList与LinkedList这两个类
List接口
存储有有序对象的集合
可以有重复元素
可以存储多个null
两个广泛使用的子类
ArrayList:以数组实现存储数据,可变长度的数组
LinkedList:以链表实现存储数据
集合框架4
Set接口与其子类HashSet,LinkedHashSet
set子接口SortedSet接口与TreeSet子类
set接口特点
保存不重复的元素
顺序不能保证
HashSet是最常用的子类
LinkedHashSet是HashSet的子类,能维护顺序
java8_api_集合框架的更多相关文章
- 一起学 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,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力.下面是开始我 ...
随机推荐
- wps实现自动编码
1.打开wps,点击“开始”菜单,选择“标题1”样式,右键选择“修改样式” 2.在修改样式界面,左键点击“格式”选择“编号”选项 3.在打开的界面选择“多级编码”,选中一个样式,点击“自定义”按钮 4 ...
- error: ‘module’ object has no attribute ‘_rebuild_tensor_v2’
import torch._utils try: torch._utils._rebuild_tensor_v2 except AttributeError: def _rebuild_tensor_ ...
- C语言编译数组中有的加code有的不加,有什么区别
像uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};和uchar ds1302[]={0xfe,0xfd,0xfb,0xf7,0 ...
- 自学python之路(day1)
1. 下载和安装Pycharm文本编辑器,解释器Python3 2. 了解python2和python3的不同 如输出中文时,python2需要在代码前加 # -*- encoding:utf-8 - ...
- 无线局域网(WLAN)
无线局域网根据结构可以分为两大类:有固定基础设施的无线局域网和无固定基础设施的局域网. 有固定基础设施是指网络中已经预先存在了一批固定的数据处理和转发设备,这些固定设备可以通过有线方式连接其他网络或 ...
- @Schedule注解中的Cron表达式读取properties的方法
1.properties文件中增加配置项: datasync.cron=0 */10 * * * ? 2.定时任务类增加PropertySource注解: @PropertySource(" ...
- 递归加载Treeview
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- python爬虫初级--获取指定页面上的菜单名称以及链接,然后导出
''' Created on 2017年4月5日 @author: Admin ''' import requests from bs4 import BeautifulSoup as bsp # 网 ...
- Csrf_token ||| CSRF跨站请求伪造
# 注: 部分内容参考网上,侵删 CSRF(Cross-site request forgery) 跨站请求伪造,是一种对网站的恶意利用 它会通过伪装成受信任用户的请求来利用受信任的网站来获取一 ...
- scrapy安装问题记录
ubuntu小白一枚,由于对于ubuntu的不了解所以导致有的问题解决不了只能白痴的重装一遍. 总结一下问题: 1.pip安装自带scrapy版本过低官方不提供维护,卸载不完全导致重装最新版不成功 # ...