package Demo03_18;
import java.util.ArrayList;
//ArrayList类
//现在,我们来介绍一个很有用的用于存储对象的类。可以创建一个数组存储对象,但是这个数组一旦创建,它的大小就固定了。
//Java提供提供了ArrayList类,可以用来存储不限定个数的对象
//ArrayList是一种泛型类,具有一个泛型类型E。创建一个ArrayList时,可以指定一个具体的类型来替换E。
public class Demo_01 {
//ArrayList<E> list = new ArrayList<E>();由于使用了称为类型推导的特征,构造方法中不再要求给出具体类型
public static void main(String[] args) {
ArrayList<String> cityList = new ArrayList<String>();
//使用对象名.add("值");的方法来向数组列表中添加元素
cityList.add("London");
cityList.add("Denver");
cityList.add("Paris");
cityList.add("Miami");
cityList.add("Seoul");
cityList.add("Tokyo");
//.size()方法能返回列表中的元素个数
System.out.println(cityList.size());
//.contains()方法能判断列表中是否含有指定元素
System.out.println(cityList.contains("Tokyo"));
System.out.println(cityList.contains("California"));
//.indexOf()方法判断列表中指定元素的下标
System.out.println(cityList.indexOf("Seoul"));
System.out.println(cityList.indexOf("Hongkong"));//如果不存在则返回-1
//.isEmpty()方法判断列表是否为空
System.out.println(cityList.isEmpty());
//.add()方法向列表末尾或指定下标出添加元素
cityList.add("Ben");
cityList.add(0, "5");
//.remove()方法向列表值移除指定元素,如果移除成功则返回true
System.out.println(cityList.remove("5"));
//直接输出将以数组形式输出
System.out.println(cityList);
//转化为字符串输出
System.out.println(cityList.toString());//显示效果和直接输出一样
String temp = cityList.toString();//实际上是以字符串形式存在
System.out.println(temp);
//.get()用于返回指定下标的元素
System.out.println(cityList.get(3));
//可以用来存储不同类型的元素
ArrayList list = new ArrayList();
list.add("bench");
list.add(5);
list.add('j');
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//清空
list.clear();
System.out.println(list);//为空
}
}
package Demo03_18;
import java.util.ArrayList;
//数组与ArrayList的异同
//首先数组一旦被创建大小就固定了
public class Demo_02 {
public static void main(String[] args) {
//数组的创建
String[] a = new String[10];
//ArrayList
ArrayList<String> list = new ArrayList<String>();//大小可变
//访问元素
//数组a[index];
//list.get(index);
//更新元素
//a[index] = "London";
//list.set();
//返回大小
//a.length//长度
//list.size();//大小
//以下都为ArrayList方法
//添加一个新元素
//list.add(val);//添加到末尾
//插入一个新元素,即在指定位置插入,后面的元素往后移
//list.add(index,val)//添加到指定位置
//删除一个元素
//list.remove(index);//删除指定位置
//list.remove(val);//删除指定值
//删除所有元素
//list.clear()
}
}
package Demo03_18;
import java.util.ArrayList;
import java.util.Scanner;
//DistinctNumbers
public class Demo_03 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
System.out.println("输入整数,以0结束");
int value;
//do-while循环可以用来连续输出某些值,当有值为截止符时结束输入
do{
value = sc.nextInt();
if (!list.contains(value) && value != 0) {
list.add(value);
}
}while(value != 0);
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
//使用for-each循环能遍历ArrayList
for(Integer i:list)
System.out.println(i + " ");
}}
package Demo03_18;
import java.util.ArrayList;
public class Demo_04 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Denver");
list.add("Sustin");
//set方法不能用于向数组中添加元素
list.set(2, "Dalls");
//数组越界异常
System.out.println(list.get(2));
}
}