集合的特点:
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)的更多相关文章

  1. java集合框架之java HashMap代码解析

     java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ...

  2. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  3. Java Collection Framework : List

    摘要: List 是 Java Collection Framework的重要成员,详细包括List接口及其全部的实现类.由于List接口继承了Collection接口,所以List拥有Collect ...

  4. java collection framework

    java collection framework Map

  5. 【JAVA集合框架一 】java集合框架官方介绍 Collections Framework Overview 集合框架总览 翻译 javase8 集合官方文档中文版

    原文链接: https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html 原文内容也一并附加在本文最 ...

  6. -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器

    集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别?                 A:长度区别                  ...

  7. Java集合框架之接口Collection源码分析

    本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...

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

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

  9. 设计: ListView 接口,and the missing read-only interfaces in java collection framework

    Java的集合框架以其成功易用的设计征服了很多人(包括我),并且教科书式的诠释了泛型的应用方式. 我也是被 Joshua Bloch 的书引领入门,从中得益良多.我当然不会认为自己在设计上比他懂得更多 ...

随机推荐

  1. C++小项目:directx11图形程序(二):systemclass

    先上代码: systemclass.h #pragma once #include"graphicsclass.h" const bool FULLSCREEN = true; c ...

  2. Xcode真机调试报错(证书的签发者无效)

    Xcode真机调试时报错: dyld: Library not loaded: @rpath/libswiftAVFoundation.dylib Referenced from: /var/mobi ...

  3. 黑马程序员——C语言基础 枚举 宏定义 自定义 static exterm

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)枚举 1)枚举类型的定义 枚举是C语言中的一种基本数据类型,并不是构 ...

  4. 进程间通信--pipe

    管道的两种局限性: 历史上,他们是半双工的(即数据只能够在一个方向上流动). 现在某些系统也提供全双工管道,但是为了最佳的移植性,我们决不应该预先假定系统使用此特性 他们只能够在具有公共祖先的进程间使 ...

  5. AngularJs的UI组件ui-Bootstrap分享(十二)——Rating

    Rating是一个用于打分或排名的控件.看一个最简单的例子: <!DOCTYPE html> <html ng-app="ui.bootstrap.demo" x ...

  6. boost和C++11中的sleep

    boost boost线程中表示睡眠的函数有sleep和sleep_for sleep 例如: boost::this_thread::sleep(boost::posix_time::seconds ...

  7. kendo ui之grid列表

    1.test_grid.jsp <html><head> <%@ include file="/WEB-INF/jsp/common/top.jsp" ...

  8. dos2unix

    dos2unix 实际上就是把文本文件里面的^M删除,我一般懒得用这个命令,vi里面用一个命令(:%s/^m//g)删除即可. 用法举例: dos2unix a.txt b.txt 要把一批文件都do ...

  9. 《java异常的一些总结》

    关于Java中异常的一些总结: 3 有些时候,程序在try块里打开了一些物理资源(例如数据库连接,网络连接. 4 和磁盘文件等),这些物理资源都必须显示回收. 5 6 注意:Java的垃圾回收机制不会 ...

  10. RequireJS和seaJS的区别与联系

    RequireJS和seaJS的区别与联系联系:都是模块加载器,倡导模块化开发理念,核心价值是让 JavaScript 的模块化开发变得简单自然.              RequireJS(除了是 ...