1 package cn.itcast.p4.hashset.demo; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 import java.util.LinkedHashSet; 6 /* 7 * LinkedHashSet集合有序且唯一 8 * 9 */ 10 public class LinkedHashSetDemo { 11 12 public static void main(String[] args)…
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…
1 package cn.itcast.p4.hashset.demo; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 /* 6 * 可自定义哈希算法 7 * 存"ab" 8 * function(element){ 9 * 97+98=195 10 * return 195%10;//5 11 * } 12 * 哈希表确定元素是否相同 13 * 1,判断的是两个元素的哈希值是否相同. 14 * 如果相同,在判…
* Map集合和Collection集合的区别? * Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的.可以把这个理解为:夫妻对 * Collection集合存储元素是单独出现的,Collection的儿子List是可重复的,Set是唯一的.可以把这个理解为:光棍(11.11) * 注意: * Map集合的数据结构值针对键有效,跟值无关 * HashMap,TreeMap等会讲. * Collection集合的数据结构是针对元素有效 * Map集合的功能概述: * 1:添加功…
代码: Collection c = new ArrayList(); c.add("hello"); c.add("world"); c.add("java"); System.out.println(c); 为什么c输出的不是地址值呢? A:Collection c = new ArrayList(); 这是多态,所以输出c的toString()方法,其实是输出ArrayList的toString() B:看ArrayList的toStrin…
最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系概念(http://www.cnblogs.com/yjboke/p/8761195.html),本篇介绍一下集合扩展内容:Arrays工具类的常用方法.集合与数组转换方式 Arrays是用于操作数组的工具类,里面都是静态方法,现介绍一些常用的方法: asList(array):将数组转换为集合:…
最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系概念(http://www.cnblogs.com/yjboke/p/8761195.html),本篇介绍一下集合扩展内容:Collections工具类的使用:可变参数:集合数组相互转换方法: Collection与Collections的区别: Collection是java.util下的一个接口…
最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系概念(http://www.cnblogs.com/yjboke/p/8761195.html),本篇介绍一下集合扩展内容:集合循环输出方式及list输出方式的效率对比 遍历循环输出方式. 遍历输出方式我这边介绍四种,for循环.迭代器(Iterator).增强for循环(foreach)和List…
1 package cn.itcast.p5.treeset.demo; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 import cn.itcast.p.bean.Person; 7 8 public class TreeSetDemo { 9 10 public static void main(String[] args) { 11 // TODO Auto-generated method stub 12…
1 package cn.itcast.p2.linkedlist.demo; 2 3 import java.util.Iterator; 4 import java.util.LinkedList; 5 6 public class LinkeListDemo { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 LinkedList link = new LinkedLi…
总体介绍 如果你已看过前面关于HashSet和HashMap,以及TreeSet和TreeMap的讲解,一定能够想到本文将要讲解的LinkedHashSet和LinkedHashMap其实也是一回事.LinkedHashSet和LinkedHashMap在Java里也有着相同的实现,前者仅仅是对后者做了一层包装,也就是说LinkedHashSet里面有一个LinkedHashMap(适配器模式).因此本文将重点分析LinkedHashMap. LinkedHashMap实现了Map接口,即允许放…
本文的目录结构如下: 一.LinkedHashSet 的 Javadoc 文档注释和简要说明 二.LinkedHashSet 的内部实现:构造函数 三.LinkedHashSet 的 add 操作和 remove 操作 一.LinkedHashSet 的 Javadoc 文档注释和简要说明 还是以官方 javadoc 作为参考进行说明: LinkedHashSet 是 Set 接口的 hash table 和 linked list 实现,而且迭代顺序可预测(按照元素的插入顺序),实际上 Lin…
原文: https://blog.csdn.net/u012658346/article/details/50917068 一.java集合类图如下所示: 上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等. Java集合都在java.util包中实现. 二.Lis…
1 package cn.itcast.p10.map.test; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 public class MapTest2 { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 /* 11 * Map在有映射关系时,可以优先考虑. 12 * 13 * 在查表法中的应用较为多见…
1 package cn.itcast.p10.map.test; 2 3 import java.util.Iterator; 4 import java.util.Map; 5 import java.util.TreeMap; 6 7 /* 8 * 练习: 9 * "fdgavcbsacdfs"获取该字符串中,每一个字母出现的次数. 10 * 要求打印结果是:a(2)b(1)...;(存在映射关系有字母和次数) 11 * 思路: 12 * 对于结果的分析发现,字母和次数之间存在着…
控制台程序. public class Person implements Comparable<Person> { // Constructor public Person(String firstName, String surname) { this.firstName = firstName; this.surname = surname; } @Override public String toString() { return firstName + " " +…
List 集合源码剖析 ✅ ArrayList 底层是基于数组,(数组在内存中分配连续的内存空间)是对数组的升级,长度是动态的. 数组默认长度是10,当添加数据超越当前数组长度时,就会进行扩容,扩容长度是之前的1.5倍,要对之前的数组对象进行复制,所以只有每次扩容时相对性能开销大一些. 源码(jdk 1.8): 1. 添加元素(非指定位置) // 1. 添加元素 public boolean add(E e) { ensureCapacityInternal(size + 1); // 每次添加…
1 package cn.itcast.p6.hashmap.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Set; 6 7 import cn.itcast.p2.bean.Student; 8 9 public class HashMapDemo { 10 11 public static void main(String[] args) { 12 // TODO Aut…
1 package cn.itcast.p6.map.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Map; 6 import java.util.Set; 7 8 public class MapDemo { 9 public static void main(String[] args) { 10 Map<Integer,String> map = new HashMa…
1 package cn.itcast.p6.map.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Map; 6 import java.util.Set; 7 8 public class MapDemo { 9 public static void main(String[] args) { 10 Map<Integer,String> map = new HashMa…
目录 示例代码 底层代码 第1步(初始化集合) 第2步(往集合中添加一个元素) 第3步(往集合中添加第二个元素) 第4步(往集合中添加第三个元素) LinkedList添加元素流程示意图 第5步(删除集合中第一个元素) 第6步(根据索引来删除集合中的元素) 第7步(根据对象内容来删除集合中的元素) 第8步(根据索引位置往集合中添加元素) 总结: LinkedList继承自List,具备有序性 LinkedList继承自Deque,具备链表关联性 LinkedList集合进行增删改查操作底层实际是…
1 package cn.itcast.p5.treeset.demo; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 import cn.itcast.p.bean.Person; 7 8 public class TreeSetDemo { 9 10 public static void main(String[] args) { 11 // TODO Auto-generated method stub 12…
对象转型 向上转型: 什么是向上造型? 子类对象赋给父类引用 父类引用指向子类对象 父类类型 引用=子类对象; 子类转成父类    默认进行(父类引用指用子类对象). 为什么需要向上造型? 子类对象可以放入父类类型的数组中 父类数组同一管理所有子类对象 减少代码冗余 向上造型的特性:向上造型后的父类引用 只能调用到父类中的成员 不能调用到子类特有的成员 向上转型: 父类转成子类    强制进行 关键字: instanceof:测试左边的对象是否是右边类的实例. 如果是则为true 否则为fals…
1 package cn.itcast.p1.vector.demo; 2 3 import java.util.Enumeration; 4 import java.util.Iterator; 5 import java.util.Vector; 6 7 public class VectorDemo { 8 9 public static void main(String[] args) { 10 // TODO Auto-generated method stub 11 Vector v…
1 package cn.itcast.p4.list.demo; 2 3 import java.util.List; 4 import java.util.ArrayList; 5 6 public class ListDemo { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 List list = new ArrayList(); 11 show(list); 12…
1 package cn.itcast.p3.arraylist.test; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 6 import com.sun.org.apache.bcel.internal.generic.NEW; 7 8 import cn.itcast.p.bean.Person; 9 import sun.jvm.hotspot.ui.action.ShowAction; 10 11 publ…
1 package cn.itcast.p2.linkedlist.test; 2 3 import java.util.LinkedList; 4 5 /* 6 * 请使用LinkedList来模拟一个堆栈或者队列数据结构. 7 * 8 * 堆栈:先进后出First In Last Out FILO 9 * 10 * 队列:先进先出 First In First Out FIFO 11 * 12 * 我们应该描述这样一个容器,给使用提供一个容器对象完成这两种结构中的一种. 13 */ 14 1…
1 package cn.itcast.p9.linkedhashmap.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.LinkedHashMap; 6 import java.util.Map; 7 8 public class LinkedHashMapDemo { 9 10 public static void main(String[] args) { 11 // T…
1 package cn.itcast.p8.treemap.demo; 2 3 4 import java.util.Iterator; 5 import java.util.Map; 6 import java.util.TreeMap; 7 8 import cn.itcast.p2.bean.Student; 9 import cn.itcast.p3.comparator.ComparatorByName; 10 11 public class TreeMapDemo { 12 13…
Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等. 发现一个特点,…