精华内容
下载资源
问答
  • 双列集合顶层接口 K: key 键 键是唯一的 V: value 值 值是可以重复的 常用子类 TreeMap 键 排序 唯一 HashMap 键 无序 唯一 LinkedHashMap 键 有序 唯一 TreeMap集合 :如何排序? 怎么...

    Map<K,V> 双列集合的顶层接口

    K: key 键 键是唯一的
    V: value 值 值是可以重复的

    常用子类 
    	TreeMap
    		键 排序 唯一  					
    	HashMap
    		键 无序 唯一 
    	LinkedHashMap
    	    键 有序 唯一
    

    TreeMap集合 :如何排序? 怎么保证键的唯一?
    1.元素实现 自然排序接口 Comparable 重写compareTo方法 定义比较规则 如果返回0 则代表元素相同
    2.创建集合时,在构造方法中传入比较器对象 Comparetor 重写compare方法 定义比较规则 如果返回0 代表元素相同

    HashMap和linkedHashMap如何保证键的唯一? 重写hashCode和equals方法
    先比较hashCode
    不同 直接添加
    相同 比较equals
    不同 添加
    相同 覆盖值

    两种遍历方式
    	1.使用键找值的方式 
    		Set<K> keySet() 获取所有键的Set集合
    		
    		1.创建Map集合 添加元素
    		2.map集合调用keySet方法 获取所有key的Set集合
    		3.遍历Set集合  依次获取到每个元素(key)
    		4.调用Map集合的get(object key) 根据键找到对应的值
    				
    	2.使用键值对关系的方式 
    		Set<Map.Entry<K,V>>	entrySet()   获取所有键值对关系对象的Set集合
    		
    		1.创建Map集合 添加元素
    		2.调用entrySet方法 获取到存储所有结婚证(键值对关系)对象的Set集合
    		3.遍历Set集合 依次获取到每个结婚证(Entry )
    		4.通过结婚证(Entry) 的 getKey 获取到键  getValue 获取到值
    

    可变参数
    使用前提 :参数类型确定,个数不确定
    可以传入当前类型的任意个数据

    格式 
    	参数类型...参数名
    
    例子 
    	public static int sum(int...a){};
    
    注意事项
    	1.可变参数本质上就是数组 也可以直接传数组
    	2.一个方法只能有一个可变参数
    	3.如果方法有多个参数 可变参数要放到最后面
    	4.最牛的可变参数 Object...obj   任意类型 任意个数
    
    展开全文
  • 一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或ListIterator接口。 迭代器,使你能够通过循环来得到或...

    如何使用迭代器

    通常情况下,你会希望遍历一个集合中的元素。例如,显示集合中的每个元素。

    一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或ListIterator接口。

    迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator 继承了Iterator,以允许双向遍历列表和修改元素。

    序号迭代器方法描述
    1使用 Java Iterator
    这里通过实例列出Iterator和listIterator接口提供的所有方法。

    遍历 ArrayList

    实例

    import java.util.*; 
    public class Test{
     public static void main(String[] args) {
     List<String> list=new ArrayList<String>();
     list.add("Hello"); 
    list.add("World"); 
    list.add("HAHAHAHA"); 
    //第一种遍历方法使用foreach遍历List 
    for (String str : list) {
     //也可以改写for(int i=0;i<list.size();i++)这种形式 System.out.println(str); 
    } 
    //第二种遍历,把链表变为数组相关的内容进行遍历 String[] strArray=new String[list.size()]; list.toArray(strArray); 
    for(int i=0;i<strArray.length;i++) //这里也可以改写为 foreach(String str:strArray)这种形式 { System.out.println(strArray[i]); }
     //第三种遍历 使用迭代器进行相关遍历 Iterator<String> ite=list.iterator();
     while(ite.hasNext())//判断下一个元素之后有值 {
     System.out.println(ite.next()); } } }
    

      

    解析:

    三种方法都是用来遍历ArrayList集合,第三种方法是采用迭代器的方法,该方法可以不用担心在遍历的过程中会超出集合的长度。

    遍历 Map

    实例

    import java.util.*; public class Test{
    public static void main(String[] args) {
    Map<String, String> map = new HashMap<String, String>();
    map.put("1", "value1"); map.put("2", "value2");
    map.put("3", "value3");
    //第一种:普遍使用,二次取值 System.out.println("通过Map.keySet遍历key和value:");
    for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); }
    //第二种 System.out.println("通过Map.entrySet使用iterator遍历key和value:");
    Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
    while (it.hasNext()) { Map.Entry<String, String> entry = it.next();
    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); }
    //第三种:推荐,尤其是容量大时

    转载于:https://www.cnblogs.com/panxuejun/p/10089827.html

    展开全文
  • 双列集合顶层接口 K:key 键,键是唯一的 v:value 值,只可以重复 key和value统称键值对 方法 put(K key,V value)向map集合中添加键值对元素 一般情况下返回值都是null,如果键相同时,添加元素会被覆盖并返回被...

    java.util.Map<K,V> 双列集合的顶层接口

    K:key        键,键是唯一的

    v:value     值,只可以重复

    key和value统称键值对

    方法

            put(K key,V value)向map集合中添加键值对元素 一般情况下返回值都是null,如果键相同时,添加元素会被覆盖并返回被覆盖的值

            get(Object key)        根据键找值

            remove(Object key) 删除一对元素,并返回被删除的值

    常用实现类

            TreeMap        键排序 唯一

            HashMap       键无序 唯一

            LinkedHashMap       键有序 唯一

            

    Map集合的遍历

    第一种方法

            键找值  Set<K> keySet() 获取到存储所有键的Set集合

    1.创建Map集合,添加数据

    2.调用keySet()方法 获取到存储所有键的set集合

    3.遍历Set集合 依次获取到每个元素

    4.调用Map集合get方法,根据key找到对应的值

    第二种方法

            通过键值对的关系对象 遍历

    Set<Map.Entry<k,v>> entrySet()         获取所有键值对关系对象的set集合

    1.创建集合对象 存储元素

    2.调用entrySet方法        获取所有键值对关系对象的set集合

    3.遍历Set集合 依次获取到每个键值对关系对象

    4.通过键值对关系对象 getKey getValue方法 获取到对应的键和值

    HashMap集合

            存储自定义类型当做键

            自定义类型需要重写hashCode和equals方法,因为要保证键的元素唯一

    TreeMap

            Treemap需要键实现自然排序接口,因为要满足treeMap的特性,排序

    如果是没有自然排序的键,可以传入比较器对象,一旦传入了比较器对象,不管是否实现了自然排序接口,也会按照传入的比较器规则来排序,比较器要重写compare方法.

    TreeMap的特有方法

    public TreeMap(Map<? extends k ,  ? extnds V > m)  将传入的map集合中的元素自动添加到TreeMap集合中

    public k  firstKey():        返回此映射中当前第一个键(最小值)

    public k lastKey():        返回此映射当前最后一个键(最大值)

    public k ceilingKey(K key):  返回大于等于给定键的最小键,如果不存在这样的键,则返回null

    java.util.Properties

            特点:   

            1.继承自hashtable 底层数据结构是哈希表  可以使用Map接口的所有方法

            2.没有泛型 键和值都是固定的数据类型string

            3.唯一一个可以和IO流结合使用的集合

    特有方法

    String setProperty(String key, String value) 添加元素  相当于 put

    String getProperty(String key) 根据键找值 相当于get

    set<String> stringPropertyNames() 获取所有键的set集合  相当于keySet

                          

    展开全文
  • 先来简单介绍一下集合吧。  我们平时想要对多个数据进行操作,初学时可能会想到使用数组来存储数据,这是没错的,但是数组的使用有时候很不便。Java中给了我们可以方便存储对象、对多个对象操作的容器--集合集合...

    先来简单介绍一下集合吧。

          我们平时想要对多个数据进行操作,初学时可能会想到使用数组来存储数据,这是没错的,但是数组的使用有时候很不便。Java中给了我们可以方便存储对象、对多个对象操作的容器--集合,集合的出现就是为了持有对象。集合中可以存储任意类型的对象,而且长度可变。在程序中有可能无法预先知道需要多少个对象,那么用数组来装的话就可能不知道长度要定义多少,而集合正解决了这样的问题。有一个要注意的问题是,集合中存放的都是对象的引用而非对象本身。

     

    集合的分类又有那些呢?

    Java对不同的容器进行了定义,虽然容器不同,但是还是有一些共性可以抽取,最后抽取了一个顶层接口,那么就形成了一个集合框架。如何学习呢?当然是从顶层学起,顶层里边具有最共性,最基本的行为。具体的使用,就要选择具体的容器了。为什么? 因为不断向上抽取的东西有可能是不能创建对象的,抽象的可能性很大,并且子类对象的方法更多一些. 所以是看顶层,创建底层。那么集合的顶层是什么呢 叫做Collection。

    ---|Collection: 单列集合
    ---|List: 有存储顺序, 可重复
        ---|ArrayList: 数组实现, 查找快, 增删慢
                由于是数组实现, 在增和删的时候会牵扯到数组
                增容, 以及拷贝元素. 所以慢。数组是可以直接按索引查找, 所以查找时较快

     

        ---|LinkedList: 链表实现, 增删快, 查找慢
                由于链表实现, 增加时只要让前一个元素记住自
                    己就可以, 删除时让前一个元素记住后一个元
                    素, 后一个元素记住前一个元素. 这样增删效
                    率较高但查询时需要一个一个的遍历, 所以效率较低

     

        ---|Vector: 和ArrayList原理相同, 但线程安全, 效率略低
        和ArrayList实现方式相同, 但考虑了线程安全问题, 所以效率略低

     

    ---|Set: 无存储顺序, 不可重复

     

    ---|HashSet:  底层数据结构是一个哈希表通过hashcode()
                        和equals()来保证元素的唯一性
                        线程不安全 存取速度快

    ---|TreeSet:  底层数据结构是一个红黑树 默认对元素进行自然排序,如果在比较的时候两个对象返回值为0,那么元素重复 

    ---|LinkedHashSet

    Collection接口有两个子接口:List(链表|线性表),set(集),其中的特点是List可以存放重复元素,元素是有序的,而Set不可以存放重复元素,元素存取是无序的。

    Collection接口的共性方法无非也是增删改查:

    增加:
    1:add() 将指定对象存储到容器中
                          add 方法的参数类型是Object 便于接收任意对象
    2:addAll() 将指定集合中的元素添加到调用该方法和集合中
    删除:
    3:remove() 将指定的对象从集合中删除
    4:removeAll() 将指定集合中的元素删除
    修改
    5:clear() 清空集合中的所有元素
    判断
    6:isEmpty() 判断集合是否为空
    7:contains() 判断集合何中是否包含指定对象
                
    8:containsAll() 判断集合中是否包含指定集合
                                使用equals()判断两个对象是否相等  
    获取:   9:int size()    返回集合容器的大小


    转成数组10: toArray()   集合转换数组

     

     

    ---| Map 双列集合: 键值对 key-value
    ---|HashMap    采用哈希表实现,所以无序
    ---|TreeMap    可以对健进行排序
    ---|HashTable   底层是哈希表数据结构,线程是同步的(线程安全),不可以存入null键,null值。 效率较低,被HashMap 替代

     

    ---|LinkedHashMap    

    再来说说Map集合。

    Map中的元素是两个对象,一个是键,一个是值。键不能重复,值可以重复

    1、添加:
    1、V put(K key, V value)    (可以相同的key值,但是添加的value值会覆

    盖前面的,返回值是前一个,如果没有就返回null)                                          

     

    2、putAll(Map<? extends K,? extends V> m)  从指定映射中将所有映射关系复制到此映射中(可选操作)。

     

    2、删除

     

    1、V remove(Object key)    删除关联对象,指定key对象

     

    2、clear()     清空集合对象
    3、获取
            1、 V get(Object key); 可以用于判断键是否存在的情况。当指定的键不存在的时候,返回的是null。

            2、Set<K> keySet():获取集合中所有键的集合

            3、Collection<V> values():获取集合中所有值的集合

     

     

    4、判断:
    1、boolean isEmpty()   长度为0返回true否则false
            2、boolean containsKey(Object key)  判断集合中是否包含指定的key
            3、boolean containsValue(Object value)  判断集合中是否包含指定的value
    5、长度:
            int size()返回集合中的键值对的数

     

     

    展开全文
  • 泛型 泛型的概述 广泛的类型,在定义一个类的时候,类型有些...泛型类 泛型方法 泛型接口 说明 类名后面跟着的泛型类型,是泛型的声明,一旦泛型声明出来,就相当于成为了已知类型,这个类型在整个类中都可以使...
  • 1.1.1List集合的实现类:ArrayList集合 1.1.2LinkedList集合 1.2Set集合 1.2.1Set集合的特点 1.2.2哈希值 1.2.3HashSet集合 1.2.4TreeSet集合 二.Map集合 2.1Map集合的概述与特点 2.1.1Map集合概述 2.1.2...
  • 一、集合(Collection) (1)集合的由来? 我们学习的是Java – 面向对象 – 操作很多对象 – 存储 – 容器(数组和StringBuffer) – 数组 而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用。 (2)...
  • 双列集合存储元素的方式是一对一对的元素进行存储,它的顶层接口是Map接口 Map接口的特点: Map接口的键是唯一的,值可以重复 每一个键只能对应一个值 Map集合是无序的 Map接口的实现类是HashMap类 HashMap集合要想...
  • 一、集合(Collection) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组 而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用...
  • 顶层共性方法找子类特有对象. Map与Collection在集合框架中属并列存在 Map存储的是键值对 Map存储元素使用put方法,Collection使用add方法 Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取...
  • 单列集合(Collection) 一、集合(Collection) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组 而数组的长度固定,所以不适合做变化的需求,Java...
  • Map是双列集合顶层接口,所有子接口的基础方法都在这个接口里面进行了定义,顾名思义,Map相当于对一类地图式的数据进行存储,我们使用地图的时候,地图上的点和真实世界的点进行了一一对应,在Map中,我们利用...
  • day11【双列集合、异常】 一、Map双列集合 1.1 Map集合概述 Map 用于保存具有映射关系的数据,如一个学生的ID对应一个学生,一个商品的ID对应一个商品,一个部门ID对应多个员工;这种具有对应关系的数据成为映射; ...
  • 集合 概述 Collection List List的两个实现类 泛型
  • java集合Collection(单列集合)、Map(双列)

    万次阅读 多人点赞 2015-08-12 13:07:59
    ———— 一、集合(Collection) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组 而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供...
  • 文章目录Java集合类 1.体系结构与父类接口介绍1.集合类体系结构2. Collection接口3....集合类体系结构包含如图所示的集合接口及其实现类。 2. Collection接口 从上图中可看出,Collection接口是单列...
  • 双列集合。 Map&lt;k,v&gt; Key——键 value——值 集合中的键不能重复,每个键只能对应一个值。   共性方法: 增: V put(K key, V value); //添加一个键值对,返回之前与该key关联的值,如没有...
  • # eval()函数可以将默认输入的字符串去掉引号并进行表达式运算,如输入500+20,默认 #得到的输入为一个字符串“500+20”,但是使用eval()函数我们得到的是一个整型数字:520 Number = eval ( input ( ) ) ...
  • 单双列集合

    千次阅读 2015-08-09 11:41:58
    Collection(单列集合顶层接口) 一、Collection接口 1、集合与数组的特点 集合:a、长度可变;b、只能储存引用数据类型;c、同一个集合中可以存储多种数据类型 数组:a、长度不可变;b、可以存储基本数据...
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    出display的值,说明他们的作用。position的值, relative和absolute定位原点是? 40 absolute的containing block计算方式跟正常流有什么不同? 40 对WEB标准以及W3C的理解与认识 41 css的基本语句构成是? ...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    测试模型 H模型: H模型图 优点: 1 介入早 与开发并行 更早的发现问题 2 测试过程独立于开发过程 更客观 更主动 V模型 V模型图 ㈠需求阶段 产品经理,项目经理,产品工程师写《需求规格说明书》Software ...
  • 1、Collection集合 1.1 集合概述 ①在前面基础班我们已经学习并使用过集合ArrayList<E>,那么集合到底是什么呢? 集合集合是java中提供的一种容器,可以用来存储多个数据 ②集合和数组既然都是容器,...
  • 6.1 集合概述 6.1.1 集合出现的原因 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。   6.1.2 集合和数组的不同 数组虽然也...
  • Collection(单列集合顶层接口) 一、Collection接口 1、集合与数组的特点  集合:a、长度可变;b、只能储存引用数据类型;c、同一个集合中可以存储多种数据类型  数组:a、长度不可变;b、可以存储基本数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,991
精华内容 2,396
关键字:

双列集合顶层接口