集合框架(JCF/Java Collection Framework)
集合的特点:
1、数据的类型可以不同
2、集合长度可变
3、空间不固定
集合也是对象,用于检索,存储以及传输对象
集合框架的组成
Collection接口和Map接口
Collection是Set接口和List接口的父接口
List与Set的区别
List允许数据的重复Set不允许数据重复
泛型:指的是对存储数据集合的一种约束(在定义类、接口时指定数据类型的形式参数)<数据类型>
泛型和迭代器的例子:
package com.wode.test;
import java.util.Iterator;
import java.util.LinkedList;
import com.sun.org.apache.bcel.internal.generic.POP;
public class Test1 {
public static void main(String[] args) {
LinkedList<String> linkedList = new LinkedList<String>();//<> 泛型
linkedList.add("zhangsan");
linkedList.add("lisi");
Iterator<String> iterator = linkedList.iterator();// 迭代器
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
对元素的遍历
foreach循环和迭代器Iterator
foreach
以输出学生对象为例:
for (Student stu1 : list) {
System.out.println(stu1);
}
迭代器Iterator
Iterator<泛型> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next()):
}
}
List接口: 一列数据内容,内容可重复,不排序/有序的(怎么样进去,怎么样出来)
ArrayList实现类(顺序存储) LinkedList实现类(双向链表存储)
ArrayList类的常用方法 LinkedList类的常用方法
add()插入一个元素到列尾 add()插入一个元素到列尾
size()查看数列长度 size()查看数列长度
get()获取一个元素 get()获取一个元素
set()修改元素 set()修改元素
remove()删除一个元素 remove()删除一个元素
toArray()将数列转化为数组 toArray()将数列转化为数组
clear()清空数列 clear()清空数列
addfrist()插入元素至列头
addlast()插入元素至列尾
removefrist()删除第一个元素
removelast()删除最后一个元素
pop()弹出第一个元素、等价于removefrist()
List接口的vetcor实现类:vrtcor和Arraylist相似,它线程安全,但是性能比较低,一般不用
ArrayList和LinkedList的适用
ArrayLis在对数据频繁的增加和删除时不适用,最适合进行查询,修改操作
LinkedList在对数据频繁的增加和删除时适用
set接口 : 一列数据内容,内容不可重复,按照内部机制进行排序/无序的(按照哈希值排序)
HashSet类和TreeSet 常用方法与ArrayLis相似
区别
HashSet不排序(对元素进行排序),运行速度快
TreeSet排序(严格按照字母排序),运行速度慢
Map接口(键值对/ key value)通过key键找valu值
HashMap和TreeMap类常用方法与ArrayLis相似
区别
HashMap不排序(对元素进行排序),运行速度快
TreeMap排序(严格按照字母排序),运行速度慢
集合框架(JCF/Java Collection Framework)的更多相关文章
- java集合框架之java HashMap代码解析
java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ...
- java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类
本文关键词: java集合框架 框架设计理念 容器 继承层级结构 继承图 集合框架中的抽象类 主要的实现类 实现类特性 集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...
- Java Collection Framework : List
摘要: List 是 Java Collection Framework的重要成员,详细包括List接口及其全部的实现类.由于List接口继承了Collection接口,所以List拥有Collect ...
- java collection framework
java collection framework Map
- 【JAVA集合框架一 】java集合框架官方介绍 Collections Framework Overview 集合框架总览 翻译 javase8 集合官方文档中文版
原文链接: https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html 原文内容也一并附加在本文最 ...
- -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器
集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别? A:长度区别 ...
- Java集合框架之接口Collection源码分析
本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...
- 【集合框架】Java集合框架综述
一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...
- 设计: ListView 接口,and the missing read-only interfaces in java collection framework
Java的集合框架以其成功易用的设计征服了很多人(包括我),并且教科书式的诠释了泛型的应用方式. 我也是被 Joshua Bloch 的书引领入门,从中得益良多.我当然不会认为自己在设计上比他懂得更多 ...
随机推荐
- SAE使用心得1
最近准备在新浪云端SAE上挂点自己的小网站,这样自己开发个什么东西别人能用.但是第一次接触SAE,遇到一些问题,记下来给大家看. 1.安装的svn版本不能高于 1.8,否则无法向SAE提交代码. 2. ...
- 两台装有Ubuntu系统的服务器搭建VPN(一台为本地服务器,另一台为云服务器)
我们搭建VPN采用的是openvpn,搭建过程总体需要经过三大步骤: 1.openvpn的安装与配置 2.端口转发 3.系统重启iptables规则自动生效 注意:以下所有名令在ro ...
- map的四种遍历方式
map是Java中非常常用的一种数据结构,但map不同于set和list都继承自Collection接口. 所以map没有实现Collection的Iterator 方法,自身没有迭代器来遍历元素. ...
- 总结Themida / Winlicense加壳软件的脱壳方法
总结下Themida/ Winlicense (TM / WL) 的脱壳方法. 1, 查看壳版本,这个方法手动也可以,因为这个壳的版本号是写在程序里面的,在解压后下断点即可查看,这里有通用的脚本,我 ...
- 关于 unsigned 型变量在计算过程中发生的事情
运行环境:CentOS release 5.8 (Final) #include<stdio.h> #include<iostream> using namespace std ...
- memset函数详解
语言中memset函数详解(2011-11-16 21:11:02)转载▼标签: 杂谈 分类: 工具相关 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大 ...
- 用profile分析算法性能
在命令行输入:profile viewer 会出现如下图所示探查器: 在运行此代码的后面的输入框中输入要运行的程序,然后点击启动探查,就会自动探查. 探查结束之后,会给出每个函数的调用次数.运行时间等 ...
- ios 大图 真机不显示的问题
png的图片只是命名为png,格式不是png的. 打开terminal终端,cd图片目录,输入命令sips -s format png *.* --out pngs,再把图片覆盖即可
- initcall调用顺序
在解释initcall调用顺序, 先要理一下编译链接的知识. 每个.o文件都有自己的代码段, 数据段(存放初始化的全局变量), bss段(即未初始化的数据段) 在ld链接器将各.o文件的代码段和数据段 ...
- 基础小功能之(1)震动,(2)检测app是否在前台运行
//开启震动 //添加权限<uses-permission android:name="android.permission.VIBRATE" /> private v ...