list



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());
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值