壹 使用LinkedList集合模拟栈:底层是addLast()和removeLast()方法,还有判空方法isEmpty()。
public Stack{ 测试类: public class Test{
private LinkedList link = newLinkedList(); public static void main(String[] args ){
public void in (Object object){ Stack s = new Stack();
link.addLast(object); s.in("some"); //进栈
} s.in("wqwa");
public Object out(){ s.out("some");
return link.removeLast(); s.out(); //出栈
} }
public boolean isEmpty(){ }
return link.isEmpaty(); 以后不写代码了,不方便。
}
}
贰 除了这,还有泛型generic(规定使用的数据类型)。定义类时,可以加泛型;定义接口也可以加泛型。
叁 通配符:右边的泛型不确定时,左边的泛型填 ?
肆 集合三种迭代的删除:for循环,增强for循环,迭代器。
普通for循环 ,通过集合索引删除。
增强for循环不能删除。因为增强for的底层是迭代器,迭代器使用集合的删除方法是错的,所以增强forGG了。
迭代器不能通过集合索引删除,因为如果迭代过程中删除会导致并发修改异常。得用迭代器自己的删除。
伍 public static void print(int... array) { // 可变参数。
使用可变参数时,不需要创建一个数组,直接赋值。print(44,33,22,11);
如果一个方法有很多参数包括可变参数,那么可变参数一定在最后。
陆 Arrays工具类的alist方法: 数组转集合
(虽然不能增加,减少元素,但可以使用集合的思想操作数组,也就是说可以使用集合中的其它方法)
基本数据类型数组转换为集合。会把整个数组作为一个对象,直接打印list是地址值。解决方法:创建基本数据类型数组时,使用对应的包装类。
加泛型的集合转数组
ArrayList<String>list = new ArrayList<>(); String[]array =list.toArray(new String[10]);
list.add("a"); 当集合转换数组时,数组的长度如果 <=集合的size,转换后的数组长度等于 集合size。 //如果长度如果 >=集合的size,分配的数组长 list.add("b"); 度就和指定的长度(例如下一行代码的10)一样。
list.add("c");
list.add("d");
(集合框架)ArrayList嵌套ArrayList for (ArrayList<Person> person : list) { //嵌套集合的遍历
list.add(list1); // 添加集合 for (Person p : person) {
list.add(list2); System.out.println(p);
}
}