请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

集合继承体系图的理解

[复制链接]
查看: 69|回复: 0

1万

主题

2万

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
46389
发表于 2019-11-9 15:38 | 显示全部楼层 |阅读模式
  
集合继承体系图的理解  游戏 1827690-20191109113237921-326492347

一、Collection、Collections的区分?
  1. java.util.Collection是一个聚集的顶级接口。它供给了对聚集工具举行底子利用的通用接口方式。Collection接口在Java类库中有很多具体的实现,其间接继续接口有List与Set。
  2. Collections是聚集类的一个工具类,其中供给了一系列静态方式,用于对聚集合元素举行排序、搜索以及线程平安等利用。
    1)排序(sort):利用sort方式可以按照元素的自然次第对指定列表按升序举行排序。列表中的全数元素都必须实现Comparable接口。此列表内的全数元素都必须是利用指定比力器可相互比力的。
  1. 1 List list = new ArrayList(); 2         int array[] = {112, 111, 23, 456, 231 }; 3         for (int i = 0; i < array.length; i++) { 4             list.add(array[i]); 5         } 6         Collections.sort(list); 7         for (int i = 0; i < array.length; i++) { 8             System.out.println(list.get(i)); 9         }10 成果:23  111  112  231  456
复制代码
    2)混排(shuffling):混排算法所做的恰好与sort相反,它打乱在一个List中大要有的任何排列的踪影。也就是说,基于随机源的输入重排该list,这样的排列具有类似的大要性(假定随机源是公道的)。这个算法在实现一个试试看的游戏中好坏常有用的。例如,它可被用来混派代表一副牌的card工具的一个list。此外,在天生测试案例时,它也是很是有用的。
    3)反转(reverse):利用reverse方式可以按照元素的自然次第对指定列表按降序举行排序。Collections.reverse(list)
    4)更换全数的元素(fill):利用指定元素更换指定列表中的全数元素。Collections.fill(li,"aaa");
    5)拷贝(copy):用两个参数,一个方针list和一个源list,将源的元素拷贝到方针,并覆盖它的内容。方针list最少与源一样长。假如它更长,则在方针list中的残剩元素不受影响。
      Collections.copy(list,li):前面一个参数是方针列表,后一个是源列表
    6)返回Collections中的最小元素(min):按照指定比力器发生的次第,返回给定collection的最小元素。collection中的全数元素都必须是经过指定比力器可相互比力的。
      Collections.min(list)
    7)返回Collections中的最大元素(max):按照指定比力器发生的次第,返回给顶collection的最大元素。Collections.max(list)
    8)lastIndexOfSubList:返回值定源列表中末端一次出现指定方针列表的肇端位置。 int count = Collections.lastIndexOfSubList(list,li);
    9)Rotate:按照指定的间隔循环移动指定列表中的元素。  Collections.rotate(list,-1); //假如是负数,则正向移动,正数则反向移动。
二、List、Set的区分?
  List与Set都继续于Collection,Collection是聚集的顶级接口;
  List为有序可反复的聚集接口,ArrayList、LinkedList、Vector为实在现类;Set是无序不反复的聚集接口,HashSet、LinkedHashSet、TreeSet为实在现类。
三、ArrayList、LinkedList、Vector的区分?
  ArrayList、Vector:底层均为数组,查询快、增删慢;ArrayList服从高、是线程不服安的;Vector服从低、线程平安,即某一时候只要一个线程可以也许写Vector,制止多线程同时写而引发的差别等性。
  LinkedList:底层为链表结构,查询慢、增删快;
四、HashMap、HashTable
  hashmap的服从高、是线程不服安的,答应键/值为空;

  hashtable是线程平安的,服从低,不答应键/值为空;
五、HashSet
  哈希表寄存的是哈希值。hashset存储元素的次第并不是依照存入时的次第(和list明显差别)而是依照哈希值来存的所以取数也是依照哈希值获得。元素的哈希值是经过元素的hashcode方式来获得的,hashset首先判定两个元素的哈希值,假如哈希值一样,接着会比力equals方式,假如equals成果为true,hashset就视为同一个元素。假如equals为false就不是同一个元素。
  哈希值类似equals为false的元素是怎样存储呢?就是在一样的哈希值下顺延(可以以为哈希值类似的元素放在一个哈希桶中),也就是哈希一样的存一列。
六、TreeSet
  1. treeset是利用二叉树的道理对add的工具依照指定的次第排序,每增加一个工具城市举行排序,将工具插入到二叉树指定的位置;
  2. Integer和String工具都可以举行默许的treeset排序,而自界说的工具是不成以的,自己界说的类必须实现Comparable接口,而且覆盖响应的compareTo()函数,才可以一般利用。
  3.在重写compareTo()函数时,要返反响应的值才华使treeset依照必定的法则举行排序。
  4.比力此工具与指定工具次第,假如该工具小于、即是或大与指定工具,则别离返回负整数、零或正整数。
七、TreeMap(可排序)
  treeMap实现SortedMap接口,可以也许把它保存的记录按照键排序,默许是按键值的升序排序,也可以指定排序的比力器,当用iterator遍历treeMap时,获得的记录是排过序的。
  假如利用排序的映照,倡议利用treeMap。

  在利用treeMap时,key必须实现Comparable接口或在机关treeMap传入自界说的Comparator,否则会在运转时抛出java.lang.ClassCastException典范的很是。
八、LinkedHashMap(记录插入次第)
  LinkedHashMap是hashMap的一个子类,保存了记录的插入次第,在用iterator遍历LinkedHashMap时,先获得的记录必定是先插入的,也可以在机关函数时带参数,依照拜候次第排序。
九、Map接口与Collection接口的区分?
  Map是双列的,Collection是单列的;
  Map的键值唯一,Collection的子接口set是唯一的;

  Map的数据结构只针对键有用,Collection针对元素有用;
聚集初始容量扩容因子负载因子底层结构线程能否平安
ArrayList101.5无(满了扩容)数组
Vector102无(满了扩容)数组
HashMap1620.75数组+链表+红黑树
HashSet1620.75数组+链表+红黑树
HashTable112*1+10.75数组+链表







免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 妈妈网-中国妈妈第一,是怀孕、育儿、健康等知识交流传播首选平台 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表