目录
集合框架初识
所谓的集合,就是用来保存和操作数据的一些类。
键值对,映射关系:键- key,值- value。
key不重复,value可以重复
例如:身份证号key,姓名value
List线性表
List——线性表的父接口
常用子类ArrayList(底层是一个动态数组实现的线性表)
LinkedList(底层是一个双向链表实现的线性表)
List接口中定义的方法,子类在实现时都需要做覆写,使用时更换子类,非常简单,只要更换new的子类对象,在使用时没有任何区别,使用方法都是接口中定义好的。
问题:ArrayList list = new ArrayList(20);中的list扩充几次?
A.0
B.1
C.2D.3
答:
补充:
当调用无参构造时,当其对象第一次使用add方法添加数据时,默认容量为10。
当添加第11个元素时,容量以1.5倍扩容。
常用方法及操作
boolean add(E e):尾插 e
void add(int index, E element):将 e 插入到 index 位置
public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(1,2); System.out.println(list); } //输出结果 [1, 2, 2, 3]
E get(int index):获取下标 index 位置元素
public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); System.out.println(list); System.out.println(list.get(2)); } //输出结果 [1, 2, 3] 3
E set(int index, E element):将下标 index 位置元素设置为 element
public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); System.out.println(list); System.out.println(list.set(0,10)); } //输出结果 [1, 2] 1
E remove(int index):删除 index 位置元素
boolean remove(Object o):删除遇到的第一个 o
public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(100); System.out.println(list); list.remove(0); Object o = 100; list.remove(o); System.out.println(list); } //输出结果 [1, 2, 100] [2]
boolean contains(Object o):判断 o 是否在线性表中
public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(100); System.out.println(list); System.out.println(list.contains(100)); } //输出结果 [1, 2, 100] true
二维数组
public static void main(String[] args) { List<List<Integer>> list = new ArrayList<>(); List<Integer> list1 = new ArrayList<>(); list1.add(1); list1.add(2); list1.add(3); list.add(list1); List<Integer> list2 = new ArrayList<>(); list2.add(4); list2.add(5); list2.add(6); list.add(list2); System.out.println(list); } //输出结果 [[1, 2, 3], [4, 5, 6]]
二维数组:int[][data = new int[];
list1:第一行
list2:第二行