我们常用IEnumerable,却忽视IEnumerator.简单来说,IEnumerable是可以被循环遍历的集合,IEnumerator实施循环遍历. 接口分别是: public interface IEnumerator { bool MoveNext(); object Current{get;} void Reset(); } public interface IEnumerable { IEnumerator GetEnumerator(); } 来执行这样简单的一个控制台程序. c…
建议30:使用LINQ取代集合中的比较器和迭代器 LINQ提供了类似于SQL的语法来实现遍历.筛选与投影集合的功能. static void Main(string[] args) { List<Salary> companySalary = new List<Salary>() { , Bonus = }, , Bonus = }, , Bonus = }, , Bonus = } }; Console.WriteLine("默认排序:"); foreach…
集合体系之集合顶层类Collection与其迭代器知识 集合的由来:Java是一门面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,就必须把多个对象进行存储,而要存储多个对象,就不能是一个基本变量,而应该是一个容器类型的变量,在容器以前的内容中,只有数组和StringBuffer是容器类型.但StringBuffer的结果是一个字符串.故只能使用数组,即对象数组.但对象数组因为长度固定,不能适应变化的需求.所以Java提供集合类. 集合与数组的区别 1.集合的…
/* * 集合的顶层接口--Collection接口 * 添加 * add() * addAll() * * 遍历集合 * iterator() 迭代器 * * 删除 * remove() * removeAll() * * 大小Size() * * 判断集合是否为空 * isEmpty() */ 集合的顶层接口--Collection接口List ArrayList LinkedListSet HashSet TreeSet 1.创建一个Collection集合对象,不能实例化,要引用 Col…
集合及特殊集合 集合的基本信息: System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能.ystem.Collections.Specialized 命名空间包含专用的和强类型的集合,例如,链接的列表词典.位向量以及只包含字符串的集合. 常用的集合为Ar…
Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Collection; import day02.Point; /** * 操作集合元素相关方法 * @author adminitartor * */ public class Collection_Remove { public static void main(String[] args) { C…
ArrayList集合 使用前引用 using System.Collections; ArrayList集合 实例化.初始化 ArrayList al = new ArrayList(); ArrayList与Array的名字很相似. 相同点: (1)两者都实现了IList.ICollection.IEnumerable接口: (2)两者都可以使用整数索引访问集合中的元素,包括读取和赋值,且集合中的索引都从0开始. 不同点: (1)ArrayList是集合,而Array是数组: (2)Arra…
ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口:       2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值,且集合中的索引都从0开始. 不同点:1.ArrayList是集合而Array是数组:      2.ArrayList是具体类而Array是抽象类:      3.数组必须在实例化时指定元素的数量,改数量一旦确定就不可以更改了.而ArrayList扩展了这一点,当实例化时可以不指定集合元素数  …
一:List概述 List是 java.util包下面的类,从<a href="http://blog.csdn.net/u010648555/article/details/56049460" target="_blank> java集合系列--java集合概述(一) 中可以知道,List继承了Collection 接口! List本身也是一个接口,它的实现有ArrayList .LinkedList.Vector和CopyOnWriteArrayList等!…
在JDK中集合是很重要的,学习java那么一定要好好的去了解一下集合的源码以及一些集合实现的思想! 一:集合的UML类图(网上下载的图片) Java集合工具包位置是java.util.* 二:集合工具的分析 1:Java集合是java提供的工具包,常用的数据结构:集合.链表.队列.栈.数组.映射等 2:java集合主要划分为五个部分: List列表.Set集合.Map映射.迭代器(Iterator.Enumeration).工具类(Arrays.Collections) 3:根据类图进行分析:…
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 12.0px Times } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Songti SC" } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times } p.p4 { margin: 0.0px 0.0px 0.0px 0.0…
集合 对于集合的理解,集合是一个容器,用于存储和管理其它对象的对象 集合,首先了解所有集合的父接口----collection 特点:存储任意object元素 方法 boolean add(Object o) // 把元素o添加到集合中,成功true,否则false boolean addAll(Collection c) //把集合c中的所有元素 添加到当前集合中 void clear() // 清空当前集合中的所有元素 boolean contains(Object o) //判断对象o 在…
1.List接口 1.1API总结 (1)是一个元素存取有序的集合 (2)是一个带有索引的集合,通过索引可以精确的操作集合中的元素 (3)集合中有可以重复的元素,通过元素的equals方法,来比较是否为重复的元素 (4)List接口的常用子类:ArrayList集合.LinkedList集合 1.2List接口中常用的方法 (1)add(Object e):向集合末尾处添加指定的元素 (2)add(int index,Object e):向集合指定索引处,添加指定的元素,原有元素依次后移 (3)…
第一篇文章中介绍了List集合的一些通用知识.本篇文章将集中介绍List集合相比Collection接口增加的一些重要功能以及List集合的两个重要子类ArrayList及LinkedList. 一.List集合 关于List集合的介绍及方法,可以参考第一篇文章. List集合判断元素相等的标准 List判断两个对象相等只要通过equals()方法比较返回true即可(关于equals()方法的详解可以参考第二篇文章中的内容). 下面以用代码具体展示. 创建一个Book类,并重写equals()…
本篇文章主要对java集合的框架进行介绍,使大家对java集合的整体框架有个了解.具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set,List,Queue. Java集合类简介: Java集合大致可以分为Set.List.Queue和Map四种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合,Java 5 又增加了Queue体系集合,代表一种队列集合实现. Java集合就像一种容器,可以把多个对象(…
1.Set集合,无索引,不可以重复,无序(存取不一致) public class Demo { public static void main(String[] args) { //demo1(); demo2(); } private static void demo2() { HashSet<Person> hs = new HashSet<>(); hs.add(new Person("张三", 23)); hs.add(new Person("…
1.Set集合(重点)1.1 基本概念 java.util.Set接口是Collection接口的子接口,与List接口平级. 该接口中的元素没有先后放入次序,并且不允许重复. 该接口的主要实现类:HashSet类 和 TreeSet类. 其中HashSet类的底层是采用哈希表来进行数据的管理. 其中TreeSet类的底层是采用有序二叉树进行数据的管理. 1.2 常用的方法 常用的方法参考Collection集合即可: Iterator<E> iterator() - 用于获取当前集合的迭代器…
集合的基本信息: System.Collections命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位组数.哈希表和字典)的集合. System.Collections.Generic命名空间包含定义泛型集合的集合和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能. System.Collections.Specialized命名空间包含专用的和强类型的集合,例如,链接的列表词典.位向量以及只包含字符串的集合. 常用的集合为ArrayList类…
// 有一个集合,判断集合里有没有“world”这个元素,如果有,添加“javaee” List list = new ArrayList(); list.add("world"); list.add("java"); list.add("hello"); //ConcurrentModificationException /*Iterator it = list.iterator(); while(it.hasNext()){ String s…
在Java中集合分为单列集合(Collection)与双列集合(Map),本文主要对两种集合的常用实现类作一介绍,如果有不足,恳请指教更正. 1.前言 说到集合肯定要介绍下集合的概念与特点:集合是一个容器,能够用来存储引用数据类型,长度是可变的.说到存储数据的容器大家脑海里想到的肯定还有数组,数组也是一个容器,可以用来存储任意类型的数据,但是长度是不可变的.因此数组有很大的局限性,在开发中存储数据我们一般都使用集合. (图是拷贝的) 2.Collection单列集合 Collection是单列集…
1,集合宏观理解 1.1,为什么引入集合? 对于面向对象的语言来说,操作对象的功能不可或缺. 为了方便对对象进行操作和处理,就必须要对对象进行暂时的存储.[数据最终存在数据库里] 使用数组来存储对象的最大问题就是数组长度的固定性.(不灵活,难扩展) Java中的集合,可以动态的将对象的引用存储在容器中.(灵活可扩展) 1.2,为什么数组长度是固定的?为什么集合是动态的? 数组在数据结构中被定义为线性结构,其内存空间是连续的.所以数组在初始化时必须指定长度. [如果不指定,系统没法分配内存] 而集…
import java.util.*; //Map集合的迭代器输出,先将Map集合变为Set集合,再使用Iterator迭代器 public class Java_collection { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); map.put(1, "张三"); map.put(2, "李四"); map.put…
==学习目标== 1.能够了解红黑树 2.能够掌握HashSet集合的特点以及使用(特点以及使用,哈希表数据结构) 3.能够掌握Map集合的特点以及使用(特点,常见方法,Map集合的遍历) 4.能够掌握HashMap集合的特点以及使用 5.能够掌握TreeMap集合的特点以及使用 ==知识点== 红黑树 HashSet Map HashMap TreeMap ==知识点梳理== ==超详细讲义== 1.红黑树 1.1红黑树-概述[了解](视频01) (2'') 1.什么是红黑树 平衡二叉B树,每…
一.TreeSet集合简单 1.TreeSet集合底层是一个TreeMap 2.TreeMap集合底层是一个二叉树 3.放到TreeSet集合的元素等同于放到TreeMap集合的Key部分 4.TreeSet集合中元素:无序不可重复,但是可以按照元素大小顺序自动排序,称为可排序集合. 5.二叉树数据机构包含:Key,Value,left,right,parent 6.TreeSet集合或TreeMap集合的Key部分元素想做到排序,包含以下两种方式: 第一种:放在集合中元素需要实现Java.la…
List集合介绍及常用方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* java.util.List接口 extends Collection接口 List接口的特点: 1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123) 2.有索引,包含了一些带索引的方法 3.允许存储重复的元素 List接口中带索引的方法(特有) -public void add(int…
遍历List集合,在循环中再对List集合进行操作,有时候会遇到ConcurrentModificationException(并发修改异常);其实只有在forEach循环集合再对集合操作会发生异常:这里要先简单的讲forEach循环 forEach forEach循环也叫增强for循环,其书写形式:for(元素类型  元素名 :集合):forEach循环比较简介,也很好用,我个人在编码中也喜欢用它,但它有几个特征 1.forEach遍历时不能再对集合进行操作 2.forEach同时只能遍历一个…
Java中  Object是所有类的根 Java集合常用的集合List集合.Set集合.Map集合 Map接口常用的一些方法 size() 获取集合中名值对的数量 put(key k, value v ) 添加元素 get( k ) 获取键对应的值 remove( key)键对应的元素 clear()清空 containsKey(key) 查询集合中是否包含某个K containsValue(value) 查询集合中是否包含某个value值 keySet()获取所有的键 values() 获取所…
一.ArrayList集合 集合内可以放不同类型的元素 另:object类型为所有数据类型的基类 添加元素:.add(); 清空集合:al.clear(); 克隆集合:.clone(); 判断是否包含某个元素:.contains(); 获取第一次出现该元素的索引号:.indexof(); 获取最后一次出现该元素的索引号:lastindexof(); 移除第一个匹配元素:.Remove(); 移除某个索引位置上的元素:.RemoveAt(); 排序 升序:.sort(); 翻转集合:.Revers…
Map用于保存具有映射关系的数据,具有两组值:一组用于保存Map中的key:另一组用于保存Map中的value,形成key-value的存储形式. Map集合中包含的一些方法: void clear():删除Map集合中的所有key-value对. boolean containsKey(object key):查询Map集合中是否包含指定的key,如果包含,返回true. boolean containsValue(Object value): 查询Map集合中是否包含指定的value,如果包…
1.什么是Lsit集合? List集合是一种元素有序的,可重复的集合,集合中每个元素都有自己的元素索引.List集合允许可重复的元素,可以通过索引来访问指定位置的元素. 2.Java8改进的List接口和ListIterator接口 List作为Collection集合的子接口,可以使用Collection接口的全部方法.另外,由于List是有序集合,又添加了根据索引来操纵List集合的一些方法. void add(int index, Object element): 将元素element添加…