为解决数组的局限性,引入容器类的概念。ArrayList是最常见的容器类。
下边是最简单的使用范例。
public class Array {
public static void main(String[] args) {
ArrayList<User> users = new ArrayList();
users.add(new User("小红"));
}
}
下边写上常用方法这个很关键,毕竟重在使用嘛
class Array{
public static void main(String[] args){
//指定泛型类型为User的集合容器
ArrayList<User> users = new ArrayList<>();
// 判断一个对象是否在容器中 contains
users.contains(new User("小白");// boolean
//获取指定位置的对象 get
System.out.println(users.get(5));
//获取对象所处的位置 indexOf
System.out.println("user对象所处的位置:"+users.indexOf(user对象));
//remove用于把对象从ArrayList中删除
users.remove(下标数字);
users.remove(对象名);
//set用于替换指定位置的元素
System.out.println("把下标是5的元素,替换为user5");
heros.set(5, new User("user5"));
//size 用于获取ArrayList的大小
users.size();
//toArray可以把一个ArrayList对象转换为数组。 //需要传递一个Hero数组类型的对象给toArray()
User[] urr = (User[])users.toArray(new User[]{});//否则只能转化为Object对象
//addAll 把另一个容器所有对象都加进来
users.addAll(另一个集合容器);//当然类型要一致
//clear清空集合容器
users.clear();
}
}
下边写遍历方式,既然是容器那就需要遍历
class Array{
public static void main(String[] args){
//方式1
//for循环和size()和get()方法去遍历
for (int i = 0; i < users.size(); i++) {
User h = users.get(i);
System.out.println(h);
}
//方式2
//增强for遍历
for (User u : users) {
System.out.println(u);
}
//方式3
//Iterator迭代器遍历
//获取it对象
Iterator<User> it= users.iterator();
//it.hasNext()判断下一个位置是否有元素
while(it.hasNext()){
//it.next()取出元素
Hero h = it.next();
System.out.println(h);
}
//ArrayList实现了java.util.List接口
List<User> users = new ArrayList<>();
}
}