Collection Set List 集合二】的更多相关文章

Set List 都继承Collection Collection:元素之间没有顺序,允许重复和多个null元素对象. Set:元素之间没有顺序,不允许重复只能存一个null. List:元素之间有顺序,允许重复和多个null元素对象. 由于Set Collection没有顺序所以没有按索引取存改等方法,如get(index);所以用for循环遍历时只能用加强for遍历 Class TestCollection { public static void mian(String[] args){…
1.Java中的Collection集合总结 Collection |---List(存储有序,可重复) |---ArrayList 底层数据结构是数组,查询快,增删慢. 线程不安全.效率高 |---Vector 底层数据结构是数组,查询快,增删慢. 线程安全.效率低. |---LinkedList 底层数据结构是链表,查询慢,增删快. 线程不安全,效率高 |---Set(存储无序,元素唯一) |---HashSet 底层数据结构是哈希表. 依赖hashCode()和equals()两个方法进行…
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.List集合 List集合代表一个元素有序.客重复的集合,集合中每个元素都有其对应的顺序索引.List 集合允许使用重复元素,可以通过索引来访问指定位置的集合元素.List集合默认按元素的添加 顺序设置元素的索引,例如第一次添加的元素索引为0,第二次添加的元素索引为1...... 1.List接口和ListIterator接口 List作为Collection接口的子接口,所以可以使用Co…
Set集合 : 元素无序的,元素不允许重复.      ---->HashSet  : 存值方式使用哈希表来存值的.                   原理 :  如果HashSet中存放对象 ,首先会调用对象的hashCode方法获取到哈希值,通过哈希值做移为等运算,                 计算出元素在哈表中存储的位置.                 情况一:如果算出的位置没有任何元素,可以直接将对象存放在该位置.                 情况二:如果算出的位置存在元素,…
集合 : 用存放对象的容器(集合)     Collection : 跟接口 : 单列集合          ---> List :有序的 ,元素是可以重复的.          ---> Set : 无序的 ,元素是不可以重复的.              Collectionz红常用的方法:       增         add();添加一个元素         addAll();A.addAll(B) 将B中的元素添加到A中.       删         remove(Object…
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3538666.html ,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. 例子 public static final ImmutableSet<String> COLOR_NAMES =ImmutableSet.of( "red", "orange", "yellow", "green&quo…
/*  * Collection主要的连个儿子:  * |--List  * 有序(存储顺序和取出顺序一致),可重复  * |--Set  * 无序(存储顺序和取出顺序不一致),唯一  *   * HashSet implements Set:它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变.(这次测的这样,下次就不一定这样)  * 注意:虽然Set集合的元素无序,但是,作为集合来说,它肯定有它自己的存储顺序,  * 而你的顺序恰好和它的存储顺序一致,这代表不了有序,你可以多存储一些数…
集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别?                 A:长度区别                         数组固定                         集合可变                 B:内容区别                         数组可以是基本类型,也可以是引用类型                         集合只能是引用类型         …
将函数映射到集合 map方法 val names = List("Peter" , "Paul", "Mary") names.map(_.toUpperCase) // 等同于 for(n <- names) yield n.toUpperCase flatMap方法,如果函数产出一个集合,又想将所有值串联在一起 def ulcase(s:String) = Vector(s.toUpperCase(), s.toLowerCase())…
对象数组的内存图解: 集合的继承体系图解: * 数组和集合的区别? * A:长度区别 * 数组的长度固定 * 集合长度可变 * B:内容不同 * 数组存储的是同一种类型的元素 * 而集合可以存储不同类型的元素 * C:元素的数据类型问题 * 数组可以存储基本数据类型,也可以存储引用数据类型 * 集合只能存储引用类型 * * 刚说过集合是存储多个元的,但是呢,存储多个元素我们也是有不同需求的:比如说,我要这多个元素中不能有相同的元素, * 再比如说,我要这多个元素按照某种规则排序一下.针对不同的需…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7542578.html 1.前言 一个可伸缩的并发实现,这个map实现了排序功能,默认使用的是对象自身的compareTo方法,如果提供了比较器,使用比较器的比较方法.简单来说ConcurrentSkipListMap是TreeMap的并发实现,但是为什么没有称之为ConcurrentTreeMap呢?这和其自身的实现有关.该类是SkipLists的变种实现,提供了log(n)的时间开销:containsKey…
Iterable: public interface Iterable<T> { Iterator<T> iterator(); } 上面是Iterable源码,只有一个iterator(),所以Iterable接口只是用来返回一个新的迭代器,意味着这个集合支持迭代 Collection是list和set的父接口,而Collection实现了Iterable,所以list和set都可以使用迭代器 Iterator: public interface Iterator<E>…
在上一节中,介绍了Java集合的总体情况.从这节開始,将介绍详细的类.这里不单单介绍类的使用方法.还会试图从源代码的角度分析类的实现.这一节将介绍List接口及实现类.即列表中的链表LinkedList和数组列表ArrayList. 1 List接口及抽象类 List接口扩展自Collection接口,这个接口设计了一些适合列表操作的方法.List是一个有序集合.元素能够加入到容器中某个特定的位置. 使用javac编译List.java源代码后,能够使用javap反编译源代码获得接口的详细信息.…
1.1集合的概述 前面基础学习并使用过集合ArrayList<E>,那么集合究竟是什么呢? 集合:集合是Java中提供的一种容器,可以用来存储多个数据. 那么意思就是说集合是容器,但是容器不全都是集合,数组也是一种容器,容器>集合 集合和数组既然都是容器,它们有什么区别? 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值,也可以储存对象 但是,集合只能存储对象. int[] arr = new int[10];//数组中可以存放基本数据 St…
前言 集合的长度是可变的.集合存储的都是对象.而且对象的类型可以不一致. Collection集合和Map集合是所有集合的父接口. Collection接口定义 体系结构的根接口,代表一组对象,有两个子接口List.Set接口. List接口: 有序,有下标,元素可重复. Set接口: 无序,无下标,不能重复. Collection接口抽象方法 public boolean add(E e): 把给定的对象添加到当前集合中 . public void clear() :清空集合中所有的元素. p…
一.  分组查询 在SQL中使用Group By 来对数据分组,在实际中分组中一般与聚合函数一并使用.在Git.Framework中提供了相应的分组方法 DataTable Group(T entity); DataTable Group(T entity, bool isOpenTrans); IEnumerable<System.Linq.IGrouping<TKey, T>> Group<TKey>(T entity, Func<T, TKey> ke…
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Queue集合 Queue集合用于模拟队列这种数据结构,队列通常是指“先进先出‘(FIFO)的容器.队列 的头部保存在队列中存放时间最长的元素,队列的尾部保存咋队列中存放时间最短的元素.新元 素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素.通常队列不允许 随机访问队列中的元素. Queue接口中定义了如下几个方法: 1)void add(Object o):将指…
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- TreeSet类 TreeSet是SortedSet接口的实现类,正如SortedSet名字所暗示的,TreeSet可以确保集合 元素处于排序状态.与HashSet集合相比,TreeSet还提供了如下几个额外的方法. 1)Comparator comparator(): 2)Object first(): 3)Object last(): 4)Object lower(Object o): 5…
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.Set集合 Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中,则添加 操作失败,add方法返回false,而新元素不会被加入. Set判断两对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用 equals方法比较返回true,Ser就不会接受这两个对象:反之,只要两个对象用equals方法比较 返回false,SEt就会接受这两个对…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7551368.html 1.前言 本章介绍剩余的3个集合类:ConcurrentSkipListSet.CopyOnWriteArrayList.CopyOnWriteArraySet.因为这三个集合类的实现都比较简单,就一并描述了.Set相关的两个类不用说,一般都是借助其它集合实现的,所以比较简单,CopyOnWriteArrayList也并不复杂. 2.ConcurrentSkipListSet 该Set集…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7517454.html 1.前言 本章介绍并发队列ConcurrentLinkedDeque,这是一个非阻塞,无锁,无界 ,线程安全双端操作的队列.简单说就是ConcurrentLinkedQueue的升级版,在JDK7之后才提供.该队列也不允许空元素,而且size方法并不是常量时间,其需要遍历链表,此时并发修改链表会造成统计size不正确.同样,bulk操作和equal以及toArray方法不保证原子性. 2…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7515729.html 1.前言 本章介绍阻塞队列SynchronousQueue.之前介绍过LinkedTransferQueue,特点提供了让生产者知道消费者消费了其产出,没消费就等待的模式,本章介绍的这个类则必须是生产者生产后消费者消费了才会继续下去,反之亦然,消费者必须等待生产者产出.SynchronousQueue只有这一种模式,而LinkedTransferQueue是可选的,Synchronous…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7510799.html 1.前言 本章介绍阻塞队列PriorityBlockingQueue.这是一个无界有序的阻塞队列,排序规则和之前介绍的PriorityQueue一致,只是增加了阻塞操作.同样的该队列不支持插入null元素,同时不支持插入非comparable的对象.它的迭代器并不保证队列保持任何特定的顺序,如果想要顺序遍历,考虑使用Arrays.sort(pq.toArray()).该类不保证同等优先级…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7283928.html 1.前言 上章讲解了Java中的集合接口和相关实现抽象类,本章开始介绍一些具体的实现类,第一个介绍的就是继承自抽象类AbstractCollection的实现类ArrayDeque,其同时实现了Deque接口.Queue的结构是一个单端的队列,从一端进另一端出,Deque是一个双端队列.而ArrayDeque是一个使用循环数组实现的双端队列了.双端队列可以实现单端队列的先入先出的方式,也…
集合的遍历 通过集合遍历,得到集合中每个元素,这是集合中最常见的操作.集合的遍历与数组的遍历很像,都是通过索引的方式,集合遍历方式如下 13 import java.util.ArrayList; 14 public class ArrayListDemo02 { 15 public static void main(String[] args) { 16 //创建ArrayList集合 17 ArrayList<Integer> list = new ArrayList<Integer…
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228435.html 博客主页:https://www.cnblogs.com/testero 1.List集合 1.1List集合概述和特点 List集合概述 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置.用户可以通过整数索引访问元素,并搜索列表中的元素 与Set集合不同,列表通常允许重复的元素 List集合特点 有索引 可以存储重复元素 元素存取有序 1.2List集合…
1.@NotNull :属性值不为空 2.@Profiles @Configuration @Profile("production") public class ProductionConfiguration { // ... } 3.@PathVariable是用来获得请求url中的动态参数的 例子: @RestController @RequestMapping(value=”/users”) public class MyRestController { @RequestMap…
知识点1 前面我们实现了这个功能,就是在models中如果有了choice选项,我们可以实现在页面显示这个chocice的value值,而不是key值,我们这个知识点就是在优化一下这个点 首先如果表中有多个有choice的字段,我们难道要为每个字段都写一个函数吗,当然这个是现实的,但是确认是繁琐的 比如我们要展示2个有choice的字段,我们就需要为每个字段写2个函数 def list_record(self,obj=None,header=False): if header: return "…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7520808.html 1.前言 本章介绍使用的最频繁的并发集合类之一ConcurrentHashMap,之前介绍过HashMap和HashTable,指出了HashTable的问题.虽然可以使用Collections.synchronizedMap方法包装HashMap完成线程安全的Map,但是这样做是远远无法满足我们对性能的需求.因为Map使用频率十分高,键值对在程序中是十分常见的,每一次put或get操作…
转载请注明源出处:http://www.cnblogs.com/lighten/p/7505355.html 1.前言 本章介绍无界的阻塞队列LinkedTransferQueue,JDK7才提供了这个类,所以这个类具备了一些一般队列不具有的特性.此队列也是基于链表的,对于所有给定的生产者都是先入先出的.注意,该队列的size方法和ConcurrentLinkedQueue一样不是常量时间.由于队列的实现,其需要遍历队列才能计算出队列的大小,这期间队列发生的改变,遍历的结果会不正确.bulk操作…