zoukankan      html  css  js  c++  java
  • 6.JAVA_SE复习(集合)

    集合

    结构图:

    总结:

    1.集合中的元素都是对象(注意不是基本数据类型),基本数据类型要放入集合需要装箱。

    2.setlist的主要区别在于set中不允许重复,而list(序列)中可以有重复对象。

    3.TreeSet中可以排序,HashSet是无序的;VectorArrayList都是可以排序的

    List

    1.arrayList.add(null);  列表中会有null        

    2.list中:ArrayListVector都有一个缺点,就是当删除或增加集合中的某一元素时,该元素后的下标会发生变化。为解决这一缺陷,我们用LinkedList,它的元素采用独立的节点,每一个节点中存放着指向下一个节点的引用。

     LinkedList的优缺点:优点 - - - 有利于方便高效的进行插入和删除操作。缺点 - - - 在进行随机元素查询时效率相对较低。

    3.Vector相较于ArrayList,同步时开销较大,访问速度比ArrayList慢。

    4.LinkedList中的方法只能取首位值,例如银行排队时适用该集合

    5. Stack类:   表示后进先出(LIFO)的对象堆栈     Last in First out

                                            peek()   查看堆栈顶部的对象,但不从堆栈中移除它。

                                            E pop()  移除堆栈顶部的对象,并作为此函数的值返回该对象。

                                            E push(E item)     把项压入堆栈顶部

     

     

     

     

     

     

     

    Pscompator排序:

    范例1

    ArrayList<Employee> emps = new ArrayList<Employee>();

           emps.add(new Employee("张三1", 21));

           emps.add(new Employee("张三2", 22));

           emps.add(new Employee("张三3", 23));

           Collections.sort(emps, new Comparator<Employee>() {

                                       @Override

                      public int compare(Employee o1, Employee o2) {

                                return o1.getAge() - o2.getAge();

                                }

                      });

    范例2

    Collections.sort(emps, new EmpCompartor());

    另写一个EmpCompartor()类:

    public class EmpCompartor implements Comparator<Employee> {

        @Override

        public int compare(Employee o1, Employee o2) {

           return o1.getAge() - o2.getAge();

        }

    }

    Set

    1.       Iterator<Integer> iterator = hashSet.iterator();

    Iterator的几个方法:

    hasNext()
    如果仍有元素可以迭代,则返回 true

    next()
    返回迭代的下一个元素。

    remove()
    从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。

       2. comparable&   Comparator    都是用来实现集合中的排序的,只是Comparable是在集合内部定义的方法实现的排序,Comparator是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义Comparator接口的方法compare()或在集合内实现Comparable接口的方法compareTo() 

       3.排序的三种方法:

    A.在需要排序的类的内部继承Comparable接口并且在下面定义一个compareTo方法(其返回值类型是int,通过不同对象的减法获值)

    B.在构造一个TreeSetlist集合时,在构造器内new 一个比较器,然后在文件中创建该比较器,该比较器继承Comparator接口,并且实现该接口中的compare方法,其返回值也为int

    C. 在构造一个TreeSetlist集合时,我们使用匿名内部类,来实现Comparator接口中的compare方法,在构造时直接声明。

    4.HashMapHashTable

     a.HashTable是同步的,其他的大致相同;

    b.Hashtable 不允许 null (key value 都不可以)HashMap 允许 null (key value 都可以)

    c. 遍历方式不同,Hashtable 使用EnumerationHashMap 使用Iterator

    d. 哈希值的使用不同,Hashtable 直接使用对象的hashCode,而HashMap 重新计算hash 值,而且用与代替求模。

     

     

    Ps: 1.键必须是唯一的,一个键不能对应两个值。如果在映射表内对同一个键调用两次put 方法,第二个值就会覆盖第一个值。

    2.删除元素的时候,如果直接使用remove一般无法删除干净,一边使用Iterator迭代删除





  • 相关阅读:
    冒泡排序与选择排序
    SVN-cheanup反复操作失败的问题。
    js区分汉字和字符,校验长度
    maven的安装与使用
    java获取登陆用户的IP地址
    kafka创建topics 错误: 找不到或无法加载主类 FilesJavajdk1.7.0_80lib;C:Program
    SOAPwebservice 与Restfull webservice之间的区别
    CAD数据导入Arcgis10.1的依赖关系
    wpf之StackPanel、WrapPanel、WrapPanel之间的关系
    浅谈修饰符
  • 原文地址:https://www.cnblogs.com/jarl/p/5892946.html
Copyright © 2011-2022 走看看