Java集合,思维导图及代码解析

 方法演示:

1.测试Collection的方法(内涵遍历)

package p3.集合;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
//测试Collection的方法
public class Main {
	public static void main(String[] args) {
		//<E> 表示该集合存储的是什么类型的元素
		Collection<Integer> coll=new ArrayList<Integer>();
		for(int i=1;i<=10;i++){
			coll.add(i);    //添加元素
		}
		System.out.println(coll.toString());    //打印coll
		Collection<Integer> coll2=new ArrayList<Integer>();    //子类实现父类,创建ArrayList集合
		for(int i=11;i<=20;i++){
			coll2.add(i);    //添加元素
		}
		System.out.println(coll2.toString());
		coll.addAll(coll2);    //将coll2添加到coll
		System.out.println(coll);    
		System.out.println(coll.contains(100));    //判断coll里是否有100
		System.out.println(coll2.remove(11));    //删除元素
		System.out.println(coll.containsAll(coll2));    //coll是否包含coll2
		System.out.println(coll.equals(coll2));    //比较
		System.out.println(coll.isEmpty());       //判空
		System.out.println(coll.size());    //元素数
		coll.retainAll(coll2);    //coll中仅保留存在coll2中的元素

		//遍历集合的方法之一 foreach
		for(Integer number:coll){
			System.out.println(number);
		}
		System.out.println("==============");
		//遍历集合的方法之二 迭代器Iterator
		Iterator<Integer> iterator=coll.iterator();
		/*	迭代器是集合中内置的一个对象 该对象主要用来访问集合当前状态下的元素
		 *  hasNext() 是否有下一个
		 *  next()    取下一个
		 * */
		while(iterator.hasNext()){
			System.out.println(iterator.next());
		}
		coll.clear();
		System.out.println(coll);
	}
}

2.测试List的方法

package p3.集合;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;


//测试List的方法
public class Main2 {
	public static void main(String[] args) {
		List<Integer> list=new ArrayList<Integer>();
		for(int i=0;i<10;i++){
			list.add(i,i);    //通过角标添加元素
		}
		list.add(10);//默认在列表的尾部添加
		list.add(4,3);
		list.add(4,3);
		System.out.println(list);    //打印list
		System.out.println(list.indexOf(3));    //获取第一个元素3的角标
		System.out.println(list.lastIndexOf(3));    //获取最后一个元素3的角标
		System.out.println(list.remove(10));    //打印删除角标10的结果(10为int类型会认为是角标)
		System.out.println(list);
		list.remove(5);    //删除角标5的元素
		list.remove(new Integer(5));    //删除元素5,此时5是对象
		list.add(300);
		list.remove(new Integer(300));
		list.set(0, 666);
		System.out.println(list.subList(0, 3));    //保留角标0-2的元素    [n,m)
		System.out.println(list);
		
		//可以获取Iterator
		//Iterator再迭代集合的过程中 集合不可修改(list.XXX())
		/*
		Iterator<Integer> it=list.iterator();
		while(it.hasNext()){
			Integer number=it.next();
			if(number==3){
				//ConcurrentModificationException
				list.remove(new Integer(3));
			}else{
				System.out.println(number);
			}
		}
		*/
		//可以获取ListIterator
		//可以在迭代集合的过程中 通过ListIterator对集合进行修改
		ListIterator<Integer> it2=list.listIterator();
		while(it2.hasNext()){
			Integer number=it2.next();
			if(number==3){
				it2.remove();
			}else{
				System.out.println(number);
			}
		}
		System.out.println(list);
		
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
	}
}

3.测试ArrayList

package p3.集合;

import java.util.ArrayList;

//测试ArrayList
public class Main  {
    public static void main(String[] args) {
        ArrayList<Integer> list=new ArrayList<Integer>(20);    ///创建容量为20的ArrayList
        for(int i=1;i<=10;i++){
            list.add(i);
        }
        list.trimToSize();    //容量设为有效元素的个数
        System.out.println(list.size());
        System.out.println(list);
        list.ensureCapacity(20);    //增加容量
        System.out.println(list.size());
        ArrayList<Integer> list2=(ArrayList<Integer>) list.clone();    //拷贝list
        System.out.println(list.equals(list2));    //比较内容,true
        System.out.println(list==list2);    //比较地址false
        Object[] numbers=list.toArray();    
        for(int i=0;i<numbers.length;i++){
            System.out.println(numbers[i]);
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值