Java集合论

    list集合

        **继承了Collection接口

        特点:有序,可重复

        常见实现类 ArrayList Vector LinkedList Stack     

     ArrayList

    public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
    //实现了Serializable接口,所以它支持序列化,可以通过序列化传输
    //实现了RandomAccess接口,支持快速随机访问,就是通过下标序号进行快速访问
    //实现了Cloneable接口,支持被克隆
      //transient关键字修饰的变量无法被序列化,前提是该类必须实现接口Serializable
      private transient Object[] elementData;
      private int size;//包含的元素的数量

       构造方法

  
      public ArrayList(int initialCapacity) {
         super();
           if (initialCapacity < 0)
            throw new IllegalArgumentException("Illegal Capacity: "+
                                                           initialCapacity);
            //构造一个指定大小的数组
           this.elementData = new Object[initialCapacity];
         }
      //重载一个无参构造方法
      public ArrayList() {  
         this(10);  //调用有参构造并设置默认容量为10
      }

          ArrayList的add方法

          public boolean add(E e) {
            ensureCapacityInternal(size + 1);//数组大小 +1  
            elementData[size++] = e;//将新下标和参数对应
            return true;
          }
          //重载的add方法
          public void add(int index, E element) {
             rangeCheckForAdd(index);                
             ensureCapacityInternal(size + 1); 
             //拷贝了一个新数组赋值给自己 
             System.arraycopy(elementData,index,elementData,index + 1,
               size - index);
               elementData[index] = element;
               size++;
          }
      拷贝方法       
    static void arraycopy(Object source, //原数组
                   int beginIndex,// 从原数组开始复制的下标
                   Object destination,// 新数组
                   int destStartIndex, // 新数组开始粘贴的下标
                   int length)     //复制长度

        


     set集合

        **继承了Collection接口

        特点:无序,元素不重复,重复添加会覆盖.同理,集合中最多有一个null

        常见实现类 HashSet 

Map集合

    特点:以键值对方式存储,key不可重复 value可重复

    常见实现类 HashMap

map集合的遍历

方法一:

 public void get(Map<String, String> map) {
        Collection<String> c = map.values();
        Iterator it = c.iterator();
        for (; it.hasNext();) {
            System.out.println(it.next());
        }
    }

方法二:

public void getByKeySet(Map<String, String> map) {
        Set<String> key = map.keySet();
        for (Iterator it = key.iterator(); it.hasNext();) {
            String s = (String) it.next();
            System.out.println(map.get(s));
        }
    }

方法三:

public void getByEntry(Map<String, String> map) {
  Set<Map.Entry<String, String>> set = map.entrySet();
  for(Iterator<Map.Entry<String, String>> it = set.iterator(); it.hasNext();){
    Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next();
      System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }
}


你可能感兴趣的:(java集合)