精华内容
下载资源
问答
  • 8. redis有序集合相关

    2019-04-13 13:27:13
    有序集合也是一个key,一个value,只不过有序集合的value分为score和value两部分,score是分数,value是值 api api 含义 时间复杂度 zadd key socre1 element1 socre2 element2 … socren elementn 添加...

    有序集合键值结构

    有序集合也是一个key,一个value,只不过有序集合的value分为score和value两部分,score是分数,value是值

    api

    api 含义 时间复杂度
    zadd key socre1 element1 socre2 element2 … socren elementn 添加score和elemenet,可以添加多对 O(logN)
    zrem key element1 element2 … elementn 删除元素 O(1)
    zscore key element 返回元素的分数 O(1)
    zincrby key increScore element 增加或减少元素的分数 O(1)
    zcard key 返回元素的总个数 O(1)
    zrange key start end [WITHSCORES] 返回指定索引范围的升序元素[分值] O(log(n) + m)
    zrangebyscore key minScore maxScore [WITHSCORES] 返回指定分数范围内的升序元素[分值] O(log(n) + m)
    zcount key minScore maxScore 返回有序集合内在指定分数范围内的个数 O(log(n) + m)
    zremrangebyrank key start end 删除指定排名内的升序元素 O(log(n) + m)
    zremrangebyscore key minScore maxScore 删除指定分数内内的升序元素 O(log(n) + m)
    展开全文
  • 集合

    2016-08-19 08:20:05
    含义:是一些对象储藏空间,仅仅只能含有对象。  分类: Set:无序,不重复 List:有序,可重复 Map:当中以”键值”去存放数据。 集合图解: SortedSet是Set子接口,里面是需要排序set集合所...

    集合

    含义:是一些对象的储藏空间,仅仅只能含有对象。 

    分类:

    Set:无序,不重复

    List:有序,可重复

    Map:当中以”键值对”去存放数据。

    集合图解:


    SortedSet是Set的子接口,里面是需要排序的set集合所必须实现的方法。

    SortedMap是Map接口的子接口,里面是需要排序的map集合所需要实现的方法。

    Hashset:是set接口的实现类,里面存放的是不重复,无序的引用类型的数据。(将集合中的引用类型数据和新插入的引用类型数据进行比较(hashcode和equals),如果相同则不在插入新数据。)

    Hashmap:是map接口的实现类,里面存放的是键不重复的引用类型数据。(将集合中的引用类型数据和新插入的引用类型数据进行比较(hashcode和equals),如果相同则将新数据替换(覆盖)原有数据。)

    注:set和list都实现了collection中Iterable接口,可以用迭代器直接遍历。

             Map没有实现collection中Iterable接口,所以不能直接用迭代器遍历,可以将map转换成Set集合,间接遍历。

    Hash哈希相同的不一定是同一个对象,但哈希不同的肯定不是一个对象。

    遍历集合的两个方法:

    ①用iterator②加强for循环

    集合名.iterator();hasNext()判断集合下一位置是否为空。Next()读取迭代器中的内容。

    for(接收数据类型 变量名:集合名)(System.out.println(变量名))。

    Map间接遍历的三种方式:

    ①map.keySet()然后使用迭代器,然后强转使用.get(key)根据key值获得Value。

    ②map.entrySet(),然后用getKey()和getValue()取得值。

    ③map.value(),然后迭代器,调用getValue()取得key值。

    泛型<>:里面只能放引用类型。

    泛型可以表示经常变化的类型

    可以放在集合和类后面表示里面描述数据的类型。?可以作为通配符。

    l properties是一个map集合,可以通过数据流从文件(扩展名.properties)中读取里面的资源。里面必须以键值对的形式存放(配置文件)。getProperties(“键”)根据键获取对应的值。

    泛型

    泛型可以使类中的属性的类型可以由外部决定

    不需要强制类型转换

      泛型可以在*编译期间*进行类型检查

      提供了类型安全的操作

    注:编译器的泛型兼容性检查:I.泛型类型和原始类型的兼容性,原始类型可以引用一个泛型类型,泛型类型可以引用一个原始类型的对象。

    II.类型参数不同的泛型类型不能互相引用,不考虑类型参数间的继承,例List<Object> l = new ArrayList<String>(); //错误

    枚举类型

    枚举类型:表示类的对象有限(java中有些类的对象是固定的)

    ①对象需要显式的在类体中列举出来②枚举类型默认是Enum的子类,构造方法是私有的。③不能new对象。④声明枚举类型用Enum关键词。

    枚举类型的对象必须 类名.valueOf(“对象名”)获得,无论拿多少次都是同一个对象。

    或者类名.对象。

     可以实现接口({}内实现或者类体中直接实现),可以包含abstract方法(必须在对象{中}实现),重写构造方法要在列举对象后(指定)。

     枚举类型类似于匿名内部类。

    展开全文
  • Collections 是针对集合一个帮助类,提供了操作集合的工具方法,一系列静态方法实现各种集合的搜索,排序线性,线程安全化等操作。 Collection Collection是单列集合 List 元素是有序的,可重复有序的...

    Collection是集合类的上级接口,子接口主要有Set、List、Map

    Collections 是针对集合类的一个帮助类,提供了操作集合的工具方法,一系列静态方法实现对各种集合的搜索,排序线性,线程安全化等操作。

    Collection

    Collection是单列集合

    List

    元素是有序的,可重复的。有序的collection,可以对列表中每个元素的插入位置进行精确的控制。可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。可存放重复元素,元素存取是有序的。

    List接口中常用类

    Vector:线程安全,但速度慢,已被ArrayList代替。底层数据结构是数组结构。
    ArrayList:线程不安全,查询速度快。底层数据结构是数组结构。
    LinkedList:线程不安全,增删速度快。底层数据结构是列表结构。

    Set

    Set接口中常用的类

    Set(集)元素无序的,不可重读的,取出元素的方法只有迭代器。不可以存放重复元素,元素存取是无序的。

    HashSet:线程不安全,存取速度快。它是依赖元素的hashCode方法和equals 方法。
    TreeSet:线程不安全,可以对Set集合中的元素进行排序,排序是通过compareTo或compare方法中的来保证元素的唯一性。元素是以二叉树的形式存放的。

    Map

    map是一个双列集合

    Hashtable:线程安全,速度快。底层是哈希表数据结构。是同步的,不允许null作为键,null作为值

    Properties:用于配置文件的定义和操作,使用频率非常高,同时键和值都是字符串,是集合中可以和IO技术相结合的对象

    HashMap:线程不安全,速度慢。底层也是哈希表数据结构,是不同步的,允许null作为键,null作为值,替代了HashTable

    LinkedHashMap:可以保证HashMap集合有序,存入的顺序和取出的顺序一致

    TreeMap:可以用来对Map集合中的键进行排序

    Java(OOP)面向对象的三个特征与含义

    封装(高内聚低耦合——>解耦)

    封装是指将某事物的属性和行为包装到对象中,这个的对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其他对象。在java中能使用private,protected,public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。

    java的集成(重用父类的代码)

    继承是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为

    java中的多态(父类引用指向子类对象)
    多态是指父对象中同一个行为能在其多个子对象中有不同的表现

    有两种多态的机制:编译时多态,运行时多态。

    1、方法的重载:重载是指同一类中有多个同名的方法,但这些方法有着不同的参数,因此在编译时就可以确定到底调用哪个方法,它是一种编译时多态。
    2、方法的重写:子类可以覆盖父类的方法,因此同样的方法会在父类中与子类中有着不同的表现形式

    Override和Overload的含义与区

    重载 Overload方法名相同,参数列表不同(个数、顺序、类型不同)与返回类型无关。
    重写 Override覆盖,将父类的方法覆盖。
    重写方法重写:方法名相同,访问修饰符只能大于被重写的方法访问修饰符,方法签名个数,顺序个数类型相同。

    Override(重写)

    • 方法名、参数、返回值相同。
    • 子类方法不能缩小父类方法的访问权限。
    • 子类方法不能抛出比父类方法更多的异常(但子类方法不可以抛出异常)
    • 存在于父类与子类之间
    • 方法被定义为final不能被重写

    Overload(重载)

    • 参数类型、个数、顺序至少有一个不相同。
    • 不能重载只有返回值不同的方法名。
    • 存在于父类和子类、同类中

    重载的规则

    1、必须具有不同的参数列表
    2、可以有不同的返回类型,只有参数列表不同就可以了
    3、可以有不同的访问修饰符
    4、可以跑出不同的异常

    重写方法的规则

    1、参数列表必须为完全与被重写的方法相同,否则不能称其为重写而是重载。
    2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
    3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public > protected > default > private)
    4、重写方法一定不能跑出新的检查异常或者比被重写方法申明放假宽泛的检查型异常

    例如:父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常

    Interface与abstract类的区别

    Interface只有成员常量,只能是方法的声明。
    Abstract class可以有成员变量,可以声明普通方法和抽象方法

    interface是接口,所有的方法都是抽象方法,成员变量是默认的public static final类型,接口不能实例化自己

    abstract class是抽象类,至少包含一个抽象方法的类叫抽象类,抽象类不能被自身实例化,并用abstact关键字来修饰

    展开全文
  • 三种 Set,List,Map。 Set表示不允许容纳重复元素的集合。 List表示可以容纳重复元素的集合。 Map表示存储键/值对的集合,每个键/值对称为一...Set:继承Collection,表示无序的,无重复元素的集合(数学上的含义

    三种
    Set,List,Map。
    Set表示不允许容纳重复元素的集合。
    List表示可以容纳重复元素的集合。
    Map表示存储键/值对的集合,每个键/值对称为一项。

    集合接口
    Collection:集合框架的顶层接口定义了操作对象集合的共同方法
    List:继承Collection,表示有序的,可包括重复元素的列表
    Set:继承Collection,表示无序的,无重复元素的集合(数学上的含义)
    SortedSet:继承Set,对Set中的元素进行排序

    List类一般不能直接使用,可以直接使用的类是ArrayList,LinkedList,Vector,Stack。
    ArrayList有如下构造函数:
    ArrayList()用于建立一个空的数组列表。
    ArrayList(Collection c)建立一个数组列表,该数组列表由集合c中的元素初始化。
    ArrayList(int capacity)建立一个数组列表,该数组有指定的初始容量。
    样例

    import java.util.ArrayList;
    
    public class ArrayListDemo {
        public static void main(String[] args) {
            ArrayList a1=new ArrayList();
            System.out.println("List的初始大小:"+a1.size());
            a1.add("A");
            a1.add("B");
            a1.add("C");
            a1.add("D");
            a1.add("E");
            a1.add("F");
            a1.add(1,"A2");
            System.out.println("增加元素的大小:"+a1.size());
            System.out.println("List中的内容:"+a1);
            a1.remove("D");
            a1.remove(2);
            System.out.println("删除元素后的大小:"+a1.size());
            System.out.println("内容:"+a1);
        }
    
    }
    

    结果
    List的初始大小:0
    增加元素的大小:7
    List中的内容:[A, A2, B, C, D, E, F]
    删除元素后的大小:6
    内容:[A, A2, C, D, E, F]

    !!!难点
    从ArrayList获得数组
    当使用ArrayList时,有时需要获得一个实际的数组,这个数组包含了列表的内容。可以通过调用方法toArray()来实现它。之所以要将集合类转换为数组,可能的原因如下。
    (1)对于一些操作,可以获得更快的处理时间。
    (2)为了给方法传递数组,而方法不必重载去接受集合。
    (3)为了将新的基于集合的程序与不识别集合的老程序集成。

    样例

    import java.util.ArrayList;
    import java.util.zip.Adler32;
    
    public class ListToArray {
        public static void main(String[] args) {
            ArrayList a1=new ArrayList();
            a1.add(new Double(10.3));
            a1.add(new Double(20.4));
            a1.add(new Double(30.5));
            a1.add(new Double(40.6));
            a1.add(new Double(40.7));
            System.out.println("内容:"+a1);
            Object a[]=a1.toArray();
            double sum=0.0;
            for(int i=0;i<a.length;i++)
            {
                sum+=((Double)a[i]).doubleValue();
            }
            System.out.println("Sum :"+sum);
        }
    
    }
    

    结果
    内容:[10.3, 20.4, 30.5, 40.6, 40.7]
    Sum :142.5

    Vector与Stack类
    类Vector非常类似于ArrayList,但是Vector是同步的,在多个线程同时访问时,安全性能更好,但这也使得他的性能变差,类Stack继承自Vector,实现一个后进先出的栈。

    展开全文
  • 通常情况下在一多中用set即可,但是也可以用list、map一、list :在Javaee中他是有序表,所以有@OrderBy注解,这个注解的含义是一多端输出时,可以按照多端某个字段排序输出,建表语句没有任何影响,只是从一端...
  • 程序:程序是一段静态代码,是保存在非易失性存储器上的的指令和数据的有序集合,没有任何执行概念。可以认为是代码编译后获得可执行文件。 任务(此处任务和VxWorks中任务不是一个含义):任务是一个逻辑...
  • 含义 :将将一串混乱数字分成无数个以两个数字为集合小块,此时只要两个元素进行排序即可,再无数个有序小块合并成一个有序集合,排序过程就完成了。 将一个大集合分成无数集合,符合了『 分治法 』...
  • 1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。 进程是一个动态的实体,它有自己的生命周期。它因创建而产生,因调度而运行,因...
  • 算法 : 特定问题求解步骤一种描述,是指令的有序集合,每一条指令表示一个或多个操作。 重要特性 有穷性:必须总是(任何合法输入值)在执行有穷步后结束,并且每一步都可在有穷时间内完成 确定性:每条...
  • 计算机程序是指完成一定功能指令的有序集合。 程序设计语言发展 C++与C关系 C++C增强,主要表现在:在原来面向过程机制基础上,C语言功能做了不少扩充。;增强了面向对象机制。 关键字:也...
  • 程序是一组指令的有序集合,本身并没有任何运行的含义,它只是一个静态的实体;而进程是程序在某个数据集上的运行,进程是一个动态的实体 进程有自己的生命周期:因创建而产生,因调度而运行,因等待资源或事件而...
  • 操作系统由开始的单道...程序有多种含义,在操作系统中,程序就是一系列有序指令的集合,可以作为软件存放于某种介质上,其本身没有任何运行的含义,是一个静态的概念。例如程序员写出来的代码放到计算机中编译为机...
  • 浅谈文件逻辑结构

    2020-11-24 11:04:34
    把文件视为有序的字符集合,其内部不再信息进行组织划分,是依次一串字符流构成文件。 文件没有结构,由一串字符流构成。文件长度以字节为单位,可以把流式文件看做记录式文件一个特例:一个记录仅有一个...
  • 是程序的一次执行,具有动态性,动态性还表现在:“它由创建而产生,由调度而执行,由撤消而消亡”可见,进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,...
  • 键/值对有序 实践约束 【强制】文档中key禁止使用_以外特殊字符 【强制】key全部小写,多个单词可以下划线分割 【强制】禁止使用数字打头key 【强制】禁止自定义_id(_id一般自增,使用无序id极有可能降低写入...
  • 一、什么是进程 进程就是运行中的程序 进程是操作系统中最小的资源分配...程序与进程的区别程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。 而进程是程序在处理机上的一次执行过程...
  • 度度熊的英文并不是很高明,所以这里的D,没什么高深的含义,只是代指等差数列[(等差数列百科)](http://baike.baidu.com/view/62268.htm)中的公差D。 这个游戏是这样的,首先度度熊拥有一个公差集合{D},然后它...
  • 进程与线程

    2019-06-03 20:43:01
    程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。 进程是运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发,进程是一个动态的实体。 线程是进程的子...
  • 进程基础复习01

    2019-01-22 20:29:00
    程序 是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态概念。进程 是程序在处理机上的一次执行过程,它是一个动态的概念。程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,...
  • ​今天我们要一起重温一下迭代器的相关知识。在理解迭代器之前,首先我们要明确迭代的含义。在《JavaScript高级程序设计(第4版)》中迭代是这样定义的:迭代的意思是按照顺序反复...再来看一个在有序集合上进行...
  • 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。 程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久...
  • 排序-希尔排序

    2016-11-24 11:39:19
    希尔排序: 当0,4,8号数据项完成排序之后,算法向右移动一步,1,5,9数据项进行...这就是数组基本有序的含义,也正是希尔排序的奥秘所在。这种交错的内部有序的数据项集合,把完成排序所需的工作量降到了最小
  • java redis缓存

    2019-11-17 22:26:17
    一、redis基本含义: 是一个 NoSQL数据库 -...有序集合类型 2. 内存存储与持久化 内存读写速度远快于硬盘 自身提供了持久化功能(RDB、AOF两种方式) 3. 功能丰富 可用作缓存、队列、消息订阅/发布 支持键生存时...
  • 映上函数

    2016-10-05 13:43:00
    一函数和映上函数 袁崇义/屈婉玲 等译 机械工业出版社 ...用排序数列的概念将定义集合可数的含义,也就是说,能用一个数 列列出集合的所有元素。本节为一一函数和映上函数。 AD:51CTO...
  • 维度指是一组数据组织方式,一组数据可以在一维方向上展开,形成线性关系。也可以在多维展开来表达多个含义。 一维数据 一维数据由对等关系的有序或无序数据构成,可以形成线性结构。在python中常见对应...

空空如也

空空如也

1 2 3 4 5
收藏数 88
精华内容 35
热门标签
关键字:

有序集合对的含义