集合基础
编程的时候若需存储多个数据,使用固定长度的数组存储格式不一定满足我们的需求,更适应不了变化的需求。
集合类的特点:
提供一种存储空间可变的存储模型,存储的数据容量可以发生改变。
集合类有很多,目前先了解ArrayList
软件包:import java.util
ArrayLisst构造方法和添加方法
package myday;
import java.util.Scanner;
import java.util.ArrayList;
public class MyDay {
public static void main(String[] args) {
ArrayList<String> array=new ArrayList<>();
//右边的<>内可以不写String
//系统会根据前面的<>中的内容推导出后面的内容
//等价于:
//ArrayList<String> array=new ArrayList<String>();
System.out.println(array);
//输出为[],没有内容
//public boolean add(E e):将指定元素追加到集合末尾
System.out.println(array.add("hello"));
//输出 true(返回是否成功add的结果)
//所以可以直接写array.add("hello");
System.out.println(array);
//[hello]
}
}
在集合指定位置插入元素:
public static void main(String[] args) {
ArrayList<String> array=new ArrayList<>();
array.add("hello");
array.add("111");
array.add("222");
System.out.println(array);
//[hello, 111, 222]
array.add(1,"aaaa");
System.out.println(array);
//[hello, aaaa, 111, 222]
}
数组不能索引越界,同样的,集合也不能索引越界。
比如array中只有三个元素,最大下标为2,那么插入元素时最多只能插到下标为3的位置,不能大于3,否则报错。
ArrayList集合常用方法
remove(e)
remove(index)
ArrayList<String> array=new ArrayList<>();
array.add("hello");
array.add("111");
array.add("222");
System.out.println(array.remove("111"));
System.out.println(array);
//true
//[hello,222]
System.out.println(array.remmove("589"));
//false 集合内没有这个元素,删除失败
System.out.println(array.remove(1));
//222 返回下标为1的元素,111已经被删
E.set(index,e);
E.get(index);
public static void main(String[] args) {
ArrayList<String> array=new ArrayList<>();
array.add("hello");
array.add("111");
array.add("222");
System.out.println(array.set(1,"999"));
//111 返回被修改的元素
System.out.println(array)
//[hello,999,222]
System.out.println(array.get(0));
//hello 得到下标为0的元素
System.out.println(array.size());
//3
}