import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/* 2017-02-17 20:10:43
* list 集合 代表一个元素有序、可重复的集合,
* 集合中每个元素都有其对应的顺序索引
* list 允许使用重复元素,可以通过索引开访问指定位置的集合元素
* list集合默认按元素的添加顺序设置元素的索引
*
*
* list 作为collection借口里的全部方法
* list 有序集合,list 中增加一些根据索引来操作集合元素的方法
*
*
*
* list 的两种实现 都是基于数组实现的,数组可以动态的、再分配的object[]数组
* initilaCapaity 参数来设置该数组的长度 默认是10
* --Arraylist 线程不安全的
* arrays 的内部类时arraylist
* Arrays.arraylist 是一个固定长度的list截个 只能遍历访问,不可增加、删除该集合的元素
*
*
* --Vertor 线程安全
* -Stack 子类
* 用于模拟栈 数据结构 后进先出
* peek 返回 栈的第一个元素 但并不将该元素pop 出栈
* pop 返回第一个元素 并弹出栈
* push 将一个元素 push进栈 最后一个元素总是位于栈顶
*
*
*/
public class Listj {
public static void main(String[] args) {
// listj1();
}
/* 2017-02-17 20:51:33
* list 接口的功能
*/
private static void listj1() {
List list = new ArrayList();
list.add(new String("list"));
list.add("list");
list.add(1,"1"); //在指定位置添加 元素
System.out.println(list);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println();
list.forEach(c -> System.out.println(c));
// list.sort(c); comparator 对象来控制元素排序 可以是用lambda 表达式作为参数
// list.replaceAll(operator); 需要一个unaryOperator 来替换所有集合元素 unaryOperator 也是一个函数式接口
System.out.println();
List list2 = new ArrayList();
list2.add(new String("asdf"));
// list2.add(new Integer(123)); java.lang.ClassCastException 虽然强转但是也不可以
list2.add(new String("asdfad"));
list2.add(new String("s"));
list2.sort((o1,o2) -> ((String)o1).length() - ((String)o2).length());
// 指定lambda表达式
System.out.println(list2);
// list2.replaceAll(operator); //需要一个lambda操作表达式
list2.replaceAll(ele ->((String)ele).length());
System.out.println(list2); //返回一个 每个字符串长度的 object
// list.iterator()
// list.listIterator() 返回一个listiterator 对象 且继承了iterator 接口
//listiterator 增加的方法
// list2.listIterator().hasPrevious() 返回迭代器关联的集合是否还有上一个元素
// list.listIterator().previous() 返回该迭代器的上一个元素
// list.listIterator().add(e); 在指定位置插入一个元素
//相比之下 增加向前迭代的功能 还增加添加元素的方法
String[] books = {
"设计模式",
"虚拟机",
};
List booklist = new ArrayList();
for (int i = 0; i < books.length; i++) {
booklist.add(books[i]);
}
ListIterator li = booklist.listIterator();
while (li.hasNext()) {
System.out.println(li.next());
}
while (li.hasPrevious()) { // 倒序输出
System.out.println(li.previous());
}
}
}
list
最新推荐文章于 2024-09-10 13:06:19 发布