zoukankan      html  css  js  c++  java
  • JavaSE高级之集合类

    ​下面的内容是对java中的集合类进行的总结,过段时间会分享java的网路编程,多线程等内容,欢迎批评指正。

    1.Java中的集合是用来存放对象的,即集合是对象的集合,对象是集合的元素,java API集合类位于java.util包中。

    2.常用集合类:

      Collection接口,List接口, Set接口,Map接口。接口类结合泛型的使用

    3.集合和数组的区别在于集合的长度是动态扩充的,数组中可以存放基本数据类型和引用数据类型,集合中只能存放引用数据类型。

    4.java中的集合层次关系

      接口:

        Iterator

        |-Collection

        |    |-Lis

        |    |   |-ArrayList

        |    |   |-LinkedList

        |    |   |-Vector

        |    |       |-Stackt

        |    |-Set

        |       |-HashSet

        |       |-TreeSet

        |-ListIterator

      Map

        |-HashMap

        |-HashTable

        |-TreeMap

    Collection接口:

      1.一个Collection对象中可以放不同类型的数据,是Set接口和List接口的父类,元素是否有序是否允许重复取决于具体的实现

      2.Set 为集合,元素无序且不允许重复,List 元素有序,允许重复。

      3.Collection中的常用方法如下:

        添加元素:add(element : object): Boolean

        移除元素:remove(element : object): Boolean

        元素个数:size () : int

        判断是否为空:isEmpty() : Boolean

        判断是否存在该元素:contains(element : objects) : Boolean

    迭代器:iterator() : iterator

      产生一个包含所有元素的数组:object[] toArray();

    List接口

      添加元素: add(index : int. element : object) 

      移除元素:remove(index : int) : object

      获取元素:get(index : int)

      设置元素:set(index : int , element:objects);

      获取元素的索引: indexOf(element : object) : int

    迭代器: listIterator() : ListIterator 

    Iterator 接口:

      Iterator称为迭代器,便于实现对容器元素的遍历,所有实现了接口Collection的集合类都有iterator()方法,返回一个实现了Iterator接口的对象,Iterator在遍历中只能单向进行,Iterator接口是为遍历设计的可以取出和删除集合中的元素,但不可以删除其中的元素

    Iterator中的主要方法:

      Object  next()  指向集合中的下一个元素

      Boolean hasNext()  判断是否还有下一个元素

      Void remove() 移除集合中的元素,执行next() 后只能执行一次remove();

    Collections 类:

      Collections 类是类似于Arrays类的工具类,它提供一些static静态方法供集合类使用或用来操作集合类

    Map接口:

      Map内存储的是以键/值对这样成对出现的对象组,通过“键”对象,来查找“值”对象,Map中的“键”是唯一的,key对象和value对象关联在一起

      Map接口中的常用方法:

      Object put(object key, object value) 添加键值对

      Object get(object key) 获取键对应的值

      Set keySet() 返回此映射中包含键的Set视图

    HashMap与HashTable的比较:

      HashTable是线程安全的,也就是说是线程同步的,HashMap是线程不安全的

      HashMap允许将一个null作为一个entry的key或者value 二HashTable不允许

    如何选择集合类

      Set内中存放的元素师不允许重复的,是无序的,List中的元素是有序的是允许重复的

      Map的应用主要是运用键/值对进行快速查询

      ArrayList和LinkedList 之间的区别在于随机查询的性能上ArrayList的性能要好,但LinkedList对中间元素的删除和添加要好

      HashSet和TreeSet的主要区别在于集合内的元素是否排序

    泛型的使用

      泛型的作用是对集合中的类型进行限制,避免去元素时进行强制转换

      HashMap与Set的结合使用

    复制代码
     1 package cn.sdut.lu;
     2  
     3 import java.util.HashMap;
     4 import java.util.Iterator;
     5 import java.util.Set;
     6  
     7 public class HashMapDemo {
     8  
     9     public static void main(String[] args) {
    10  
    11         //HashMap实例化
    12         HashMap hm = new HashMap();
    13  
    14         //往集合中添加元素
    15         hm.put(1,new Person("aa",12));
    16         hm.put(2,new Person("vv",15));
    17  
    18         //获取键视图
    19         Set s = hm.keySet();
    20  
    21         //利用迭代器遍历键视图
    22         Iterator I = s.iterator();
    23  
    24         //遍历键视图取得键值
    25         while(I.hasNext()){
    26             System.out.println(hm.get(I.next()));
    27         }
    28     }
    29 }
  • 相关阅读:
    监听 view 初始化时
    动画 帧动画
    Android Studio 修改jar包中的.class代码
    ScrollView 滚动条
    SpannableString 设置文字中的颜色 链接
    onActivityResult 解耦 不需要一层一层的写
    滚动 Scroller OverScroller
    startActivity 新开一个Activity
    Fragment java.lang.IllegalStateException 生命周期
    jenkins 基于docker部署springboot项目详细步骤
  • 原文地址:https://www.cnblogs.com/zhangkeyu/p/6659402.html
Copyright © 2011-2022 走看看