一.
现在重点学习一下List,List是Collection的子接口,那么Collection的方法,List都具备,共性方法就不讲述了。
讲述一下List中特有的方法,这些特有方法的共性就是可以对角标进行操作。
(以下讲述的都是list中的方法,我觉着还是基于操作元素的角标)
1. 添加
截图中的第一个方法是父类Collection中的添加方法,第二个方法是自己特有的。给定一个角标位置,插入一个元素或者一堆元素。
上图中的方法是根据位置,拿元素。一旦有了角标,就可以精确进行定位了。
这里删除方法中,返回的Object对象是指什么?是删掉的指定角标上的元素么?还是说剩下的集合。
修改的方法中,返回的Object是指被修改的元算,也就是原先角标位置上的元素。
subList方法中包含头,不包含尾。
二.
接下来就是演示上面谈论到的方法,
在导入list包时,list在java的不同包里面都有这名字,java.awt包或者java.util包都有list。如果窗口出来后直接回车,导入的是java.awt包。在继续的时候,调用的方法都是没见过的。
哪个元素被删除掉,哪个元素就被返回来了。remove能改变长度。为了更清楚地知道,光知道删除某个角标,也要返回让我们知道删除的元素到底是什么。如果是直接删除元素,那就返回boolean类型数据即可。
list集合是支持着对元素,增删改查的集合。只能它能具备,collection都不具备修改。
DOS结果是返回abc2,也就是被修改的那个。
也就是角标越界,它既不是数组的,也不是字符串的。
结果不包含开头,只包含尾部。
package collectionsDemo; import java.util.ArrayList; import java.util.List; public class ListDemo { public static void main(String[] args) { List list = new ArrayList(); show(list); } public static void show(List list) { //添加元素 list.add("abc1"); list.add("abc2"); list.add("abc3"); System.out.println(list); //插入元素这 list.add(1, "gaoshuo"); System.out.println("add:"+list);//add:[abc1, gaoshuo, abc2, abc3] //删除元素 System.out.println("remove:"+list.remove(2));//remove:abc2 System.out.println("set:"+list.set(2, "hello"));//返回原来位置上的值abc3。 //获取子列元素,包含0,不包含2 System.out.println("sublist:"+list.subList(0, 2));//sublist:[abc1, gaoshuo], System.out.println(list); } }