• Java的集合、Iterator迭代器


    集合

    集合是java中提供的一种容器,可以用来存储多个数据。而且集合的长度是可变的。集合中存储的元素必须是引用类型数据(ArrayList)

    ArrayList类发现它继承了抽象类AbstractList同时实现接口List,而List接口又继承了Collection接口。Collection接口为最顶层集合接口

    List接口允许重复的有序排列,Set接口不允许重复并且是无序排列

    Collection基本用法

    public class Demo {
    	public static void main(String[] args) {
    		Collection<String> col = new ArrayList<String>();
    		col.add("你好");
    		col.add("双十一");
    		col.add("买买买");
    		Object obj = col.remove("1");  //移除col集合中的1并返回一个布尔值
    		System.out.println(obj);
    		System.out.println(col.contains("双十一"));  //如果col包含此元素,返回一个布尔值
    		ArrayList<String> list = (ArrayList<String>) col;  //向下转型
    		for (int i = 0; i < list.size(); i++) {
    			System.out.println(list.get(i));
    		}
    	}
    }
    

      

    Object[] obj1 = col.toArray();//返回一个数组
    		for (int i = 0; i < obj1.length; i++) {
    			System.out.println(obj1[i]);
    		}
    

      往集合中添加对象元素。add方法,创建集合时所指定的数据类型如<String>,那么,添加的是String类型;创建集合时若没有指定数据类型,那么,Object类型。

    public static void main(String[] args) {
            //Collection也可以不写范型
            Collection col = new  ArrayList();
            col.add("abc");
            col.add(123);
            col.add(12.3);
            //ArrayList 也可以不写范型
            ArrayList   list = (ArrayList)col;
            for(int i = 0;i < list.size();i++){
                if(list.get(i) instanceof String){
                    System.out.println(list.get(i));
                } 
                if(list.get(i) instanceof Integer){
                    System.out.println(list.get(i));
                } 
            }    
        }
    

      

    Iterator迭代器

    在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

    public static void main(String[] args) {
    //		迭代器
    		Collection<String>col = new ArrayList<String>();
    		col.add("123");		
    		col.add("abc");
    		Iterator<String>it = col.iterator();
    		System.out.println(it.hasNext());
    		System.out.println(it.next());
    		System.out.println(it.hasNext());
    		System.out.println(it.next());
    		System.out.println(it.hasNext());
    	}
    

      

    集合元素的向下转型

    public static void method03() {
    		Collection col = new ArrayList();
    		col.add(new Person("熊大",22));
    		col.add("111");
    		col.add(23456);
    		Iterator it = col.iterator();
    		while(it.hasNext()) {
    			Object obj = it.next();///当需要使用子类对象特有方法时,需要向下转型, 否则报错
    			if(it.next() instanceof String) {//“111”
    				String s = (String)it.next();//是23456
    				System.out.println(s.length());
    			}
    		}		
    	}
    

      

  • 相关阅读:
    个人作业——软件工程实践总结&个人技术博客
    个人作业——软件评测
    结对第二次作业——某次疫情统计可视化的实现
    结对第一次—疫情统计可视化(原型设计)
    软工实践寒假作业(2/2)
    软工实践寒假作业(1/2)
    个人技术总结 (vex-table)
    个人作业——软件工程实践总结&个人技术博客
    个人作业——软件评测
    结对第二次作业——疫情统计可视化的实现
  • 原文地址:https://www.cnblogs.com/cgj1994/p/9757666.html
Copyright © 2020-2023  润新知