ArrayList集合特点:
1.有序,允许重复(有序指跟添加顺序一致)
2.有下标,可以通过下标获取元素,以及将元素插入指定位置
3.底层使用的数据结构是数组,线程不安全
4.数组在内存地址是连续的,因此查找时快,增删速度慢查找速度快,增删速度慢
练习:
创建一个User类,包含name和password两个成员变量.向一个ArrayList对象添加5个User对象,这5个User对象的成员变量的值分别为name=”1”,password=”a”, name=”2”,password=”b”, name=”3”,password=”c”, name=”4”,password=”d”, name=”5”,password=”e”。然后创建一个User对象,这个User对象的成员变量为name=”3”,password=”c”,然后使用contains方法测试这个对象是否包含在ArrayList对象中。
User类
//创建一个User类,包含name和password两个成员变量
public class User {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [name=" + name + ", password=" + password + "]";
}
public User(String name, String password) {
super();
this.name = name;
this.password = password;
}
public User() {
super();
}
}
测试代码
import java.util.ArrayList;
public class Test1 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
//循环添加对象
//可以将a~e存入一个数组,String[] s=new String[]{"a","b","c","d","e"};
for(int i=0;i<5;i++){
////根据ASCII码,直接获取abcde a--97 b--98 char类型的数据与数字相加会先将字符转为数字再相加,前面加个char类型强转,则会变成对应的字符
list.add(new User(""+(i+1),Character.toString((char)('a'+i))));
}
System.out.println(list);
//判断是否有User对象的成员变量为name="3",password="c"
boolean b=list.contains(new User("3", "c"));
System.out.print(b);//false,永远都是false,尽管内容相同,但这是两个不同的对象
}
}