list集合常用操作 package com.gcx.demo; import java.util.ArrayList; import java.util.Date; import java.util.List; public class Test2 { public static void main(String[] args) { List list=new ArrayList();// Collection list=new ArrayList(); Collection无序,不能使用带顺序的方法 list.add("aaa"); list.add("aaa"); list.add(new Date()); list.add(1234);//jdk1.5自动装箱 System.out.println(list.size()); list.remove("aaa");//只会删除第一个 底层用return 两个作用:1.方法的返回值 2.结束运行 System.out.println(list.size()); Object object = list.get(0);//拿到第一个,底层是数组,下标0开始 System.out.println(object); list.set(1, "gcx");//把索引为1的值替换掉 System.out.println(list.size()); } } 简单list底层实现,更加深入的理解 package com.gcx.demo2; public class Demo1 { private Object[] elementData; private int size; /** * 返回个数 * @return */ public int size(){ return size; } /** * 调用重载构造器 */ public Demo1(){ this(10); } /** * 初始化容器 * @param initialCapacity */ public Demo1(int initialCapacity){ if(initialCapacity<0 try="" throw="" new="" exception="" catch="" exception="" e="" e="" printstacktrace="" this="" elementdata="new" object="" initialcapacity="" param="" obj="" public="" void="" add="" object="" obj="" ensurecapacity="" elementdata="" size="" obj="" return="" public="" boolean="" isempty="" return="" size="=0;" param="" index="" return="" public="" object="" get="" int="" index="" rangecheck="" index="" return="" elementdata="" index="" param="" index="" public="" void="" remove="" int="" index="" rangecheck="" index="" int="" nummoved="size-index-1;" if="" nummoved="">0){ System.arraycopy(elementData, index+1, elementData, index, numMoved); } elementData[--size]=null; } /** * 检查是否越界 * @param index */ public void RangeCheck(int index){ if(index>=size){ try { throw new Exception(); } catch (Exception e) { e.printStackTrace(); } } } /** * 删除对象 * @param obj */ public void remove(Object obj){ for(int i=0;i<size;i++){ if(get(i).equals(obj)){ remove(i); } } } /** * 把指定索引的值替换掉 * @param index * @param obj * @return */ public Object set(int index,Object obj){ RangeCheck(index); Object object = elementData[index]; elementData[index]=obj; return object; } /** * 在指定索引处添加值 * @param index * @param obj */ public void add(int index,Object obj){ RangeCheck(index); ensureCapacity(); System.arraycopy(elementData, index, elementData, index+1, size-index); elementData[index]=obj; size++; } /** * 数组扩容 */ public void ensureCapacity(){ if(size==elementData.length){ Object[] newArray=new Object[size*2+1]; System.arraycopy(elementData, 0, newArray, 0, elementData.length); elementData=newArray; } } public static void main(String[] args) { Demo1 d=new Demo1(3); d.add("333"); d.add("333"); d.add("444"); d.add("555"); System.out.println(d.size()); Object object = d.get(3); System.out.println(object); } } </0>