1.什么是集合:
集合又称为容器,用于存储、提取、删除数据。JDK提供的集合API都包含在 java.util 包内。
2.集合的俩个分支:
集合框架两大分支:Collection接口和Map接口
3.总结 ArrayList常用方法
①add(Object element) 向列表的尾部添加指定的元素,一次只能添加一个。
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("jim");
list.add("tom");
list.add("kk");
}
}
②size() 返回列表中的元素个数
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList list = new ArrayList<>(); //<不写,默认为Object类>
list.add("asd");
int i=list.size();
System.out.println(list.size());
}
}
输出的结果是1。
③get(int index) 返回列表中指定位置的元素,index从0开始
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add("asd");
list.add("tim");
System.out.println(list.get(1));
}
}
输出的结果是tim
④add(int index, Object element) 在列表的指定位置插入指定元素,原来的元素后移。
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("jim");
list.add("tom");
list.add("kk");
list.add(0,"katw");
System.out.println(list.get(0));
}
}
输出的结果是katw.
⑤set(int i, Object element) 将索引i位置元素替换为元素element并返回被替换的元素。
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("jim");
list.add("tom");
list.add("kk");
String str = list.set(1, "lucy");
System.out.println(str);
System.out.println(list.get(1));
}
}
输出的结果:
⑥clear() 从列表中移除所有元素
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("jim");
list.add("tom");
list.add("kk");
System.out.println(list.size());
list.clear();
System.out.println(list.size());
}
}
⑦isEmpty() 判断列表是否包含元素,不包含元素则返回 true,否则返回false
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("jim");
list.add("tom");
list.add("kk");
System.out.println(list.isEmpty());
}
}
输出结果为false。
⑧remove(int index) 移除列表中指定位置的元素(从0开始),并返回被删元素,并且后面的元素前移。
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("jim");
list.add("tom");
list.add("kk");
list.remove(0);
System.out.println(list.remove(0));
System.out.println(list.get(0));
}
}
⑨remove(Object o) 移除集合中第一次出现的指定元素,移除成功返回true,否则返回false,后面的元素前移。
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("jim");
list.add("tom");
list.add("kk");
boolean flag = list.remove("jim");
System.out.println(flag);
System.out.println(list.get(0));
}
}
⑨contains(Object o) 如果列表包含指定的元素,则返回 true。
用来判断集合容器中是否含所有参数元素。
package list;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("jim");
list.add("tom");
list.add("kk");
boolean flag;
flag = list.contains("jim");
System.out.println(flag);
}
}
思考:判断过程是什么?
真正执行的ArrayListcontains方法,该方法源码如下:
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;
}
传入String类型,但是 O是Object类型,所以是o是上转型 ,多态。
⑩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("jim");
list.add("tom");
list.add("kk");
int i;
for(i=0; i<list.size(); i++) {
System.out.println(list.get(i));
}
for(String name : list) {
System.out.println(name);
}
Iterator<String> iterator = list.iterator(); //将List集合中元素转到iterator变量中
while(iterator.hasNext()) { //iterator.hasNext()检查还有没有下一个元素
System.out.println(iterator.next()); //输出下一个元素
}
}
}
这三种方式都是遍历集合的方法。