java学习之List

     集合中的方法

   addAll  removeAll  retainAll

public class Demo01 {
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public static void main(String[] args) {
		//测试addAll
		Collection c1=new ArrayList<>();
		c1.add("a");
		c1.add("b");
		c1.add("c");
		Collection c2=new ArrayList<>();
		c2.add("a");
		c2.add("b");
		c2.add("c");
		c2.add("d");
		//retainAll
		//返回是两个集合的交集
		//返回值 是看 调用者是否发生变化
		c1.retainAll(c2);
		boolean rel1 = c1.retainAll(c2);
		System.out.println(c1); 
		System.out.println(c2);
		System.out.println(rel1);
		
		//添加方法
		//把c2当做一个元素 添加到c1中
		//c1.add(c2);
		//System.out.println(c1);
		//addAll
		//把c2中的每一个元素 添加c1中
		c1.addAll(c2);
		//removeAll
		//删除是 调用集合的元素
		boolean rel = c1.removeAll(c2);
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(rel);
	}
}

 迭代器

    迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代   表容器中的确定的地址。

public static void main(String[] args) {
		Collection c=new ArrayList<>();
		//实际上 内部有个指针
		//调用next 实际上把指针向下移动一位
		//调用几次挪动几位
		c.add("a");
		c.add("b");
		c.add("c");
		c.add("d");
		//从集合中 获取迭代器
		Iterator iterator=c.iterator();
		//判断是否有下一个元素
		boolean rel = iterator.hasNext();
		System.out.println(rel);
		//如果有下一个元素
		if (rel) {
			//获取集合中元素
			Object next=iterator.next();
			System.out.println(next);
		}
	}

  迭代器遍历集合

public class Demo01 {
	public static void main(String[] args) {
		Collection c=new ArrayList();
			c.add("a");
			c.add("b");
			c.add("c");
			c.add("d");
		//获取迭代器
			Iterator iterator = c.iterator();
		//循环遍历
		while (iterator.hasNext()) {
		    //注意:循环中 只调用一次next方法
		    Object next = iterator.next();
		    //打印集合中的元素
		    System.out.println(next);
		    	
		}
	}
}

  添加元素

  add(int index,Object obj)

               List list=new ArrayList();
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		//添加(不要超出集合的元素个数 Size)
		list.add(0, "x");
		System.out.println(list);

  设置元素

  set(index,obj)

               List list=new ArrayList();
		list.add("a");
		list.add("b");
		list.add("c");
		//设置元素(替换该位置的元素)
		list.set(0, "w");
		System.out.println(list);

  获取下标处的元素

  get(int index)

              List list=new ArrayList();
		list.add("a");
		list.add("b");
		list.add("c");
		//获取下标处的元素
		Object object = list.get(0);
		System.out.println(list.get(0));

  删除元素

  remove(int index)
              List list=new ArrayList();
    		list.add("a");
		list.add("b");
		list.add("c");
		//删除(返回的是删除的元素)
		Object obj = list.remove(0);
		System.out.println(obj);

  利用get方法 遍历集合

for (int i = 0; i < args.length; i++) {
	//打印元素
	System.out.println(list.get(i));
}

  Vector

                //创建一个Vector 
		//遍历方法
		Vector vector=new Vector();
		vector.addElement("a");
		vector.addElement("b");
		vector.addElement("c");
		vector.addElement("d");
		//遍历这个集合
		Enumeration elements=vector.elements();
		while (elements.hasMoreElements()) {
		System.out.println(elements.nextElement());
			
	}

   addFirst

public static void main(String[] args) {
		LinkedList linkedList=new LinkedList();
		linkedList.add("z");
		linkedList.add("x");
		linkedList.addFirst("a");
		System.out.println(linkedList);
	}//最终打印结果为[a,z,x]

    addLast

public static void main(String[] args) {
		LinkedList linkedList=new LinkedList();
		linkedList.add("z");
		linkedList.add("x");
		linkedList.addLast("a");	
		System.out.println(linkedList);
	}//最终打印结果为[z,x,a]

    ArrayList特点

    查询快 增删慢

    数组实现

    查询 按角标查询

    增删时 把要删除或增加的元素后面的所有元素

    向前移动或者向后移动


    LinkedList特点

    查询慢 增删快

    链表实现

    查询:

    先看这个元素 离哪一端近 就从那一端开始

    一个一个向后或向前寻找 直到找到为止

    增加:

    链表的元素 要保证能找到自己的上一个和下一个元素

    需要保存上一个和下一个元素的地址

    只要保存了地址 就能找到元素 就相当于插入到了链中

    后面的元素 不会发生改变


    两个集合如何选择?

    增删多 链表

    查询多 数组





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值