在Java中,集合是一个容器,可存储任意数据类型的数据,与数组不同,数组一旦创建,其大小就不可改变且类型也确定了,且集合中添加了很多方法便于添加,删除,查询,插入数据等操作。
ArrayList集合ArrayList集合是我们常用的集合之一,ArrayList是一个可以处理变长数组的类型,它是一个泛型类,可以存放任意类型的对象。顾名思义,ArrayList是一个数组列表,其内部是用数组来存放数据的。
ArrayList常用的方法有add()、clear()、get()、indexOf()、remove()、sort()、toArray()、toString()等。ArrayLIst内部有一个私有类实现Interator接口,因此可以使用interator()方法得到ArrayList的迭代器。
现在我们来实现集合的简单应用:
package com.project08;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList list = new ArrayList();
//向列表中添加元素
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("Hello");
System.out.println("当前列表内元素为:");
System.out.println(list);
}
}
}
这样一来,我们就成功地用add()方法向列表里添加了5个元素。如下:
接下来我们对其中的数据进行一些操作。
get()方法:
package com.project08;
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("Hello");
System.out.println("当前列表内元素为:");
System.out.println(list);
//测试代码
System.out.println("-----------------------");
System.out.println("获取下标为4的元素");
System.out.println(list.get(4));
}
}
输出结果:
接下来直接修改测试代码为以下内容:
IndexOf()方法:
System.out.println("------------------------");
System.out.println("查找是否存在指定元素,存在则返回下标,不存在则返回-1");
System.out.println(list.indexOf("Hello"));
System.out.println(list.indexOf(5));
remove()方法:
System.out.println("-----------------------");
System.out.println("删除下标为4元素");
list.remove(4);
System.out.println(list);
remove(Object o)方法:
System.out.println("-----------------------");
System.out.println("删除指定元素2");
list.remove("2");
System.out.println(list);
toArray()方法:
System.out.println("以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。 ");
Object[] array = list.toArray();
for(int i=0;i< array.length;i++) {
System.out.println(array[i]);
}
interator()方法:
System.out.println("用集合中的interator()方法迭代出集合中的所有元素");
Iterator iterator = list.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
ArrayList的简单应用:
package com.project08;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest {
public static void main(String[] args) {
//创建列表储存对象的类型为Person类型
ArrayList arrayList = new ArrayList<>();
Person person01 = new Person(18,"Tom");
Person person02 = new Person(19,"Mike");
Person person03 = new Person(20,"Alice");
//向列表中添加对象的引用
arrayList.add(person01);
arrayList.add(person02);
arrayList.add(person03);
System.out.println(arrayList);
//删除集合中所有元素
arrayList.clear();
System.out.println(arrayList);
}
}
}
//创建Person类
package com.project08;
public class Person {
int age;
String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(int age, String name) {
this.age = age;
this.name = name;
}
}
结果如下:
注意: ArrayList arrayList = new ArrayList<>();中的Person必须是引用数据类型,不能是基本数据类型。在集合中,我们可以很方便的对Person产生的一系列对象做删除,修改等操作,大大提高了程序的灵活性。
另外,由于ArrayList所有方法都是默认在单一线程下进行的,因此Arraylist不具有线程安全性,若想在多线程下使用,应该使用Collection类中的静态方法synchronizedList()对ArrayList进行调用。



