zoukankan      html  css  js  c++  java
  • java 集合

    数据多了存在对象里面,对象多了存在集合里面。

    已经有数组了为什么要集合呢?

      数组特点:大小固定,只能存储相同数据类型的数据。 数组只能存同一类型的对象。

      集合特点:大小可动态扩展,可以存储各种类型的数据。

    什么是集合框架

      集合是Java中的容器。这种容器有共同的特性,就形成了体系,就是集合框架。

    为什么会有这么多的集合框架?

      因为每一种的集合框架对数据的存储方式都有所不同。  

      这个存储方式被称之为 数据结构

    迭代器

      通俗点说 叫 一个个数过去,取出来。实现这样一个个数过去功能的东西,叫迭代器。

      Iterator ite=list.iterator(); 
      while(ite.hasNext()){
       System.out.println(ite.next());
      }
    

      

    具体使用最好参考手册,里面有最全的操作

    Arraylist  http://www.cnblogs.com/skywang12345/p/3308556.html  具体使用在第6节

    java 中几种常用数据结构 http://blog.csdn.net/u010947402/article/details/51878166

    将数组转换成List , 使用了Java.util.Arrays类中的静态方法asList

       String[] str=new String[]{"1","2","3"};
    
        List list=Arrays.asList(str);

    将List转换成数组

       List list=new ArrayList();
    
       list.add(1);
        list.add(2);
        list.add(3);
        Integer[] in=new Integer[list.size()];
        in=(Integer[])list.toArray(in);
       for(int k=0;k<in.length;k++){
          System.out.println(in[k]);
       }

     

    数组是固定长度的。ArrayList是数组结构,属于可变长度数组。初始10的长度。当长度用完了,每次增加原长度的50%。

    http://www.cnblogs.com/sierrajuan/p/3639353.html   ArrayList和LinkedList的区别

    这里面讲了,linkedList 链表的数据存储结构 和 ArrayList 数组结构的概念和原理

    相同:因为他俩都是继承自list 所以很多方法都是通用的

    不同:

    ArrayList 因为有数组的下标所以在查询和修改的时候能跟据下标(key)快速定位,所以速度会很快,但是插入和删除的话,会将整个数组的下标全都从新计算修改。所以会很慢。

    linkedList 由于是链表的结构。在修改和删除的话只在当前的结构中修改 操作的对象 的前一个 和它后一个之间的关系。不需要重新生成下标。所以修改和删除linkedList更快些。

    linkedList 因为链表的结构能快速定位到当前的第一个数据 和 最后一个一个数据。所以它有几个特有的方法 *Last,*.Farst相关的方法。

    查询和修改多的时候用ArrayList

    修改和删除多的时候用linkedList

    如果增删改查都多的时候?

    优先选用ArrayList 。因为查询的频率更高一些

     堆栈 先进后出

     队列 先进先出

     hashSet  操作基本上是一样的,无许,不可重复。

       

    如果元素本身没有比较性,或者它的比较方式不是我们所需要的。需要构建比较器的。具体方法看手册去

  • 相关阅读:
    正则表达式的语法表
    leetcode1567. 乘积为正数的最长子数组长度 吴丹阳
    leetcode152. 乘积最大子数组 吴丹阳
    leetcode740. 删除并获得点数 吴丹阳
    leetcode53. 最大子数组和 吴丹阳
    leetcode55. 跳跃游戏 吴丹阳
    leetcode45. 跳跃游戏 II 吴丹阳
    leetcode213. 打家劫舍 II 吴丹阳
    leetcode918. 环形子数组的最大和 吴丹阳
    leetcode482. 密钥格式化 吴丹阳
  • 原文地址:https://www.cnblogs.com/zhaoyang-1989/p/6636417.html
Copyright © 2011-2022 走看看