java基础--LinkedList

LinkedList

实例一

*** *1.接口collection在java.uilt包中
 * 2接口collection接口表示一组对象分三个接口
 *	A.list接口,实现类分为[长度可变,有序,可重复]
 *		a.ArrayList(底层用数组实现的List,查询效率高,增删效率低,线程不安全)
 *				可以存储字符串也可以遍历
 *      ArrayList 有特有的迭代器,ListIterator可以正顺序与饭顺序的遍历
 *  B.Linkedlist(底层双链表实现的 List,查询效率低,增删效率高,线程不安全)
 *  
 *		C.vector(底层数组实现的List,线程安全)
 *  B.set接口
 *  C.Iterable接口在java.long包中
 * 
 * 
 *
 * 
 */

public class Linkedlist {
	public static void main(String[] args) {
		final LinkedList list=new LinkedList();
		list.add("hello");//添加元素
		list.add("hi");
		list.add("yes");
		list.add("wrold");
		list.add("java");
		list.addFirst("北京");//用这种方法添加,遍历会出现返顺序的变化----先进后出
		list.addFirst("欢迎");
		list.addFirst("你");
		final Iterator iterator=list.iterator();
		while(iterator.hasNext()){
			final String s=(String)iterator.next();
			System.out.println(s);
		}
		
	final LinkedList<String> li=new LinkedList<String>();
	li.add("长风");
	li.add("破浪");
	li.add("会有时");
	li.addAll(list);//添加对象
	//li.clear();//清空
	System.out.println(li.contains("长风"));//根据元素判断是否存在
	System.out.println(li.set(4, "安阳"));//根据索引修改元素
	System.out.println(li.get(2));//根据索引得到元素
	System.out.println(li.hashCode());//获取哈斯玛
	System.out.println(li.size());//长度是
	System.out.println(li.indexOf("yes"));//根据元素值得到索引
	System.out.println(li.isEmpty());//判断是否存在不存在为true
	System.out.println(li.lastIndexOf("安阳"));//通过元素值找索引
	System.out.println(li.remove(3));//通过索引删除元素值
	System.out.println(li.remove("长风"));//通过元素删除
	//li.removeAll(list);//删除一个证对象
	li.retainAll(list);//仅在列表中保留指定 collection 中所包含的元素
	System.out.println("*****用迭代器循环********");
	final Iterator it=li.iterator();
	while(it.hasNext()){
		final String srt=(String)it.next();
		System.out.println(srt);
	}
	System.out.println("&&&&&&&&用for与Iterator 循环&&&&&&&&&&&&&&&&");
	for(Iterator fr=li.iterator();fr.hasNext();){
		final String  str=(String)fr.next();
		System.out.println(str);
	}
	System.out.println("*******普通的for**********");
	for(int i=0;i<li.size();i++){
		final String s=(String)li.get(i);
		System.out.println(s);
	}
System.out.println("…………………………for each循环………………………………………………………6");
	for(String f:li){
		System.out.println(f);
	}
	
	
	}


实例二

/**集合 ,容器,动态的数组
 * linkedList是底层双向链表实现,长度可变,有序,可以重复
 * 1,查询底下
 * 2,增删效率高;
 * 3线程不安全
 * vector,线程安全 
 **/
public class LinkedList1 {
	public static void main(String[] args) {
			//LinkedList list=new LinkedList();//初始化了一个链表
		LinkedList<String> list=new LinkedList<String>();//泛型是控制输入的类型,
			list.add("小狗");//list.add()
			list.add("美国");//
			list.add("japenses!");//
			list.add(2,"小狗");//
			list.addFirst("小花");//添加首部
			list.addLast("小鹿");//添加尾部,调用addFirst要new一个LinkList,因为是list接口的实现类的LinkList特有的方法;
//			list.remove();//等同与list.removeFirst();删除首部
//			list.removeLast();//删除我尾部
			list.contains("美国");
			//list.clear();//清空数组
			System.out.println("美国是不存在"+list.contains("美国"));//存在为true
			if(list.isEmpty()){
				System.out.println("数组是不存在:");//不存在为true
			}else{
				System.out.println("false");
			}
			
			//鏈表會自動用遍歷的方式打印所有內容
			System.out.println(list);
			 //利用Vector或者是ArrayList等Collection往鏈表中加數據
			Vector v=new Vector(); //利用Vector或者是ArrayList等Collection往鏈表中加數據
			v.add("旺旺");
			v.add("老美");
			v.add("JAPEN");
			v.add("老猪");
			System.out.println(v);
			 //將當前Vector加在當前鏈表的指定位置
			System.out.println(list.get(2));
		
	}
}

自定义

//JDK5的新特性:自动拆装箱,泛型,增强for,静态导入,可变参数,枚举
public class Likedlist自定义集合类 {
	private LinkedList liked;//调用LinkedList类
	public Likedlist自定义集合类(){
		liked=new LinkedList();
	}
	public void add(Object o){
		liked.addFirst(liked);
	}
	public Object get(){
		return liked.getFirst();
	}
	@Override
	public String toString() {
		return "Likedlist自定义集合类 [liked=" + liked + ", get()=" + get()
				+ ", getClass()=" + getClass() + ", hashCode()=" + hashCode()
				+ ", toString()=" + super.toString() + "]";
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值