zoukankan      html  css  js  c++  java
  • 容器(Collection) List接口 Set接口

    List接口 ,Set接口

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.HashSet;
    import java.util.LinkedList;
    import java.util.List;
    
    import com.hanqi.model.Book;
    
    public class Main {
    
    	
    	public static void main(String[] args) {
    		MyArrayList list = new MyArrayList(); //List接口的底层原理
    		Book b = new Book("格林童话2");
    		list.add(new Book("格林童话1"));
    		list.add(b);
    		list.add(new Book("格林童话3"));
    		list.add(new Book("格林童话4"));
    		list.add(new Book("格林童话5"));
    		list.add(new Book("格林童话6"));
    		System.out.println(list.size());
    		System.out.println(list.get(2));
    		System.out.println(list.remove(b));
    		System.out.println(list.remove(new Book("格林童话5")));  //如果要剔除掉,你new了一个新的,
    		//c.remove方法: 通过判断两个对象是否互相的equals来确定是不是该删除该对象,
    		//自定义的类, 需要自己重写父类的equals方法
    		//重写equals方法, 也应该重写hashCode方法
    		System.out.println(list.size());
    		
    		//集合是一种容器
    		Collection c1 = new ArrayList();  //Arraylist 是Collection的实现关系
    		Collection c2 = new ArrayList();
    		
    		c1.add("aaa");  
    		c1.add("bbb");
    		c1.add("ccc");
    
    		c2.add("aaa");
    		c2.add("bbb");
    		c2.add("ddd");
    		
    		System.out.println(c1.retainAll(c2));//返回一个boolean值, 
    		//当list的内容被改变的时候返回true, 否则返回false
    		//总结:像上面的情况,就是说先取出c1与c2的交集取出来给c1,现在的c1与之前的c1进行比较,如果内容改变就返回ture
    		
    		
    		
    		
    		List list1 = new ArrayList();  //父类引用指向子类,List里的方法可以使用,ArrayList初始容量为10
    		list1.add(100);
    		list1.add("bbb");
    		list1.add(new Book("黑猫警长"));
    		list1.add(new String("ddd"));
    		
    	System.out.println(list1.get(2));  //获取的索引值为2的内容ccc 
    		Object obj = list1.set(2, "frsgrdfsghdrtfhjdtg");  //有一个返回值,需要再get一下
    		System.out.println(obj); //返回的是"ccc";
    		System.out.println(list1.get(2));  //得到是"新设置的内容"
    		
    		list1.remove(100);
    		list1.remove(new String("bbb"));
    		list1.remove(new Book("黑猫警长"));
    		list1.remove("ddd");
    		System.out.println(list1.size());   //输出长度变为几
    		
    		int i = list1.indexOf(100);  //这个值第一次出现的索引值
    		System.out.println(i);
    		int i2 = list1.lastIndexOf("ddd"); //这个值最后一次出现的索引值
    		System.out.println(i2);
    /*	 List接口	get
    		set(有一个返回值要注意 !)
    		add
    		remove(int)  //传的是索引值
    		remove(Object)
    		indexOf
    		lastIndexOf*/
    		
    		泛型
    		List <String> list = new ArrayList <String>();  //规定是字符串型的就是输入的是字符串,而且
    		//是引用类型
    		list.add("aa");//c.add(参数类型必须是Object)
    		list.get(0);
    		/*目的是为了免去强转Object的麻烦
    		1, 装入集合的类型都被当作Object对待, 从而失去了自己的实际类型
    		2, 集合中取出来的时候需要转型, 效率低, 易出错*/
    
            }
    
    }
    

    遍历

    输出 aaa,bbb,ccc,ddd, 唯一不好之处在于无法取出索引值  ,for循环遍历, 1.5以后才出现的for(Objetc o : array) {}
                有优点有缺点,for each

  • 相关阅读:
    H5性能分析及前端性能监控:window.performance
    APP自适应的例子
    JS和CSS关于大小写的区分
    滚动条相关整理
    文本域的高度自适应
    导入谷歌地图(参考其他文献,个人整理)
    SmartNIC Architectures: A Shift to Accelerators and Why FPGAs are Poised to Dominate
    行业巨变!英特尔正式发布IPU芯片Mount Evans
    How to Design SmartNICs Using FPGAs to Increase Server Compute Capacity
    新一代SmartNIC融合了定制ASIC、Arm CPU和FPGA元素
  • 原文地址:https://www.cnblogs.com/zuo72/p/7906432.html
Copyright © 2011-2022 走看看