集合

概念:

集合又称为容器,用于存储提取删除数据。(即增加,删除,查找)。JDK提供的集合API都包含在 java.util 包内。
类似于数组。

集合的分支 :

其关系如图:

Java中arraylist的特点不包括 java arraylist常用方法_Test

ArrayList

常用方法:
1.add()

作用:
用于向List集合容器中添加元素。
是泛型:用于约束集合容器中元素的数据类型,如果省略,则默认为Object类型,因为Object是所有类的父类。

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		System.out.println(list);
	}
}

结果

[Tom]
2.size()

作用:
用于获取集合中有多少个元素。

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		int length=list.size();
		System.out.println(length);
	}
}

结果:

1
3.get();

作用:

获取指定索引(从0开始)位置的元素。

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		System.out.println(list.get(2));
	}
}

结果:

array
4.add( __, " ");

作用:

在指定位置添加元素,原来位置的元素后移。

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.add(0, "Kate");
		System.out.println(list.get(2));
	}
}

结果:

lili
5.set(int i, Object element)

作用:

替换指定位置的元素。

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		System.out.println(list.get(2));
	}
}

结果:

Lucy
6.clear()

作用:

清空List集合中的所有元素。

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		System.out.println(list.get(2));
		list.clear();
		System.out.println(list);
	}
}

结果:

Lucy
[]
7.isEmpty()

作用:

用于判断集合容器中有没有元素,返回布尔类型。

如果没有,则true

则为flase

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		System.out.println(list.get(2));
		boolean flag = list.isEmpty();
		System.out.println(flag);
		list.clear();
		System.out.println(list);
		boolean flag2 = list.isEmpty();
		System.out.println(flag2);
	}
}

结果:

Lucy
false
[]
true
8.contains(Object o)

作用:

用来判断集合容器中是否含所有参数元素。
没有这个元素则返回flase。
有则返回true。

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		boolean flag = list.contains("Jim");
		System.out.println(flag);
	}
}

结果:

false

思考:判断过程是什么?
我们可以按住Ctrl点击鼠标进入contains内部,取得内部代码为:

public boolean contains(Object o) {
        return indexOf(o) >= 0;
    }
public int indexOf(Object o) {
        if (o == null) {
            for (int i = 0; i < size; i++)
                if (elementData[i]==null)
                    return i;
        } else {
            for (int i = 0; i < size; i++)
                if (o.equals(elementData[i]))
                    return i;
        }
        return -1;
    }

o即为你要查找的那个元素jim。由于进入之后将o定义为Object类型,所以此时他是上转型对象。而由于查找的元素不为空,所以进入else分支。进入if语句时,o.equals(elementData[i])这句代码看着是调用的父类Object里的语句,实际上是调用的String类型里的。这就形成了一个多态。
多态是为了让其查找到所有的类型,因为你集合里面并不一定全都是一种特定类型。

9.remove()

作用:

删除指定索引(从0开始)位置的元素,并将元素返回,并且后面元素前移。

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		String str = list.remove(0);
		System.out.println(list);
	}
}

结果:

[lili, Lucy]
10.remove(Object o)

作用:

删除List集合中的xx元素,返回boolean类型,并后面元素前移。

注:
注意比较9和10的区别。
例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		String str = list.remove(0);
		System.out.println(list);
		list.remove("lili");
		System.out.println(list.get(0));
	}
}

结果:

[lili, Lucy]
Lucy
11.iterator()

作用:

将List集合中元素转到iterator变量中

原理:

判断当前“指针”下面是否还有元素,如果指针下面有元素,则移动指针并获取相应位置的元素。

例:

package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		String str = list.remove(0);
		System.out.println(list);
		list.remove("lili");
		System.out.println(list.get(0));
		Iterator<String> iterator = list.iterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}	
	}
}

结果:

[lili, Lucy]
Lucy
Lucy

集合的遍历

三种方法:

第一种:常规方法
package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		for(int i=0;i<list.size();i++) {
			System.out.println(list.get(i));
		}
	}
}
第二种:for-each
package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		for(String name:list) {
			System.out.println(name);
		}
	}
}
第三种:利用iterator方法
package list;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
	public static void main(String [] args) {	
		ArrayList <String>list =new ArrayList<String>(); 
		list.add("Tom");
		list.add("lili");
		list.add("array");
		list.set(2, "Lucy");
		Iterator<String> iterator = list.iterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}
	}
}