java list父类参数 list的父类接口_System

 List特点

1.元素都有下标

2.数据是有序的

3.允许存放重复的元素

*用于List接口的方法测试*

package cn.tedu.collectuon;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
import org.w3c.dom.ls.LSOutput;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/*用于List接口的方法测试*/
public class TestList {

    public static void main(String[] args) {
        //1.创建List接口的多态对象,注意List是接口,不可以直接实例化
        List<String> list =  new ArrayList<>();

        //2.向集合中添加元素
        list.add("老大");
        list.add("老二");
        list.add("老三");
        list.add("老四");
        list.add("老五");
        list.add("老六");
        list.add("老七");
        System.out.println(list);

        //3.测试继承自Collection中的方法
        //list.clear();//清空集合
       // System.out.println(list);//[]
        System.out.println(list.contains("老大"));//true,判断是否包含指定元素

        System.out.println(list.isEmpty());//false,判断集合是否为空
        System.out.println(list.remove("老七"));//移除集合中指定的元素
        System.out.println(list);//[老大, 老二, 老三, 老四, 老五, 老六]
        System.out.println(list.size());//6,获取集合中元素的个数
        System.out.println(Arrays.toString(list.toArray()));//集合转数组


        //4.测试集合间的操作
        List<String> list2 = new ArrayList<>();
        list2.add("1");
        list2.add("2");
        list2.add("3");
        list2.add("4");
        System.out.println(list2);//[1, 2, 3, 4]
        System.out.println(list.addAll(list2));//将2集合中的所有元素加到list中
        System.out.println(list);
        System.out.println(list.containsAll(list2));//判断list中是否包含list中所有的元素
        System.out.println(list.removeAll(list2));//移除list中属于list2的所有内容
        System.out.println(list);

     //   System.out.println(list.addAll(1,list2));//将list2集合当中的所有元素加到list集合的1号索引处
      //  System.out.println(list);

        //5.测试List接口中独有的方法
        list.add("小八");//追加到最后
        list.add(1,"小八");
        System.out.println(list);
        System.out.println(list.indexOf("小八"));//3,判断元素第一次出现的位置
        System.out.println(list.lastIndexOf("小八"));//8,判断元素最后一次出现的位置
        System.out.println(list.remove(5));//根据索引删除指定元素
        System.out.println(list);
        System.out.println(list.get(3));//获取指定位置的元素
        System.out.println(list.set(6,"小九"));//在指定索引修改指定元素
        System.out.println(list);

        //注意add()是添加元素,总个数+1,set()是修改元素,总个数不变
    }
}

测试父类接口Collection中的常用方法

package cn.tedu.collectuon;
/*测试父类接口Collection中的常用方法*/
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

public class TestCollection {
    public static void main(String[] args) {
        //1.创建Collecyion相关的对象
        //Collection c = nre Collection();//报错,因为Collecyion是接口
        //<Integer>是泛型,用来约束集合中的元素,这个类型必须是引用类型不能是基本类型
        Collection<Integer> c = new ArrayList<>();

        //2.测试向集合中存入多个数据
        c.add(100);
        c.add(200);
        c.add(300);
        c.add(400);
        c.add(500);
      //  System.out.println(c);//打印查看集合中的元素

        //3.测试常用方法
//        c.clear();//清空集合中所有的元素
//        System.out.println(c);

        System.out.println(c.hashCode());//获取集合对象的哈希码值
        System.out.println(c.toString());//打印集合中所有元素,重写后的实现
        System.out.println(c.equals(200));//false,不能拿集合对象与200作比较
        System.out.println(c.contains(200));//true,判断c集合中是否含有元素2000
        System.out.println(c.isEmpty());//false,判断集合是否为空

        System.out.println(c.remove(200));//删除c集合中指定元素200
        System.out.println(c);//100,300,400,500
        System.out.println(c.size());//4,获取集合中元素的个数

        Object[] array = c.toArray();//将指定的集合c转为数组,使用多态思想,数组类型是Object
        System.out.println(array);//[Ljava.lang.Object;@1b6d3586,打印的是地址值
        System.out.println(Arrays.toString(array));//[100, 300, 400, 500],打印的是值


        //4.测试多个集合之间的操作
        Collection<Integer> c2 = new ArrayList<>();
        c2.add(1);
        c2.add(2);
        c2.add(3);
        System.out.println(c2);//[1, 2, 3]

        c.addAll(c2);//把c2集合中所有元素添加到c集合中
        System.out.println(c);//[100, 300, 400, 500, 1, 2, 3]
        System.out.println(c2);//[1, 2, 3],c2集合本身没有改变

        System.out.println(c.containsAll(c2));//true,判断c集合是否包含c2集合中的所有元素
        System.out.println(c.contains(5));//false,判断c集合是否包含指定元素5

        System.out.println(c.removeAll(c2));//删除c集合中属于c2集合所有的元素
        System.out.println(c);//[100, 300, 400, 500]


        //retainAll(c2)的作用是保存当前集合c与参数集合c2的公共元素
        //删掉c集合中不属于公共元素的部分
        c.add(999);
        System.out.println(c);//[100, 300, 400, 500, 999]
        System.out.println(c.retainAll(c2));
        System.out.println(c);//[]
        System.out.println(c2);//[1, 2, 3]
        c.add(3);
        c.add(100);
        System.out.println(c);//[3,100]
        System.out.println(c.retainAll(c2));
        System.out.println(c);//[3]
        System.out.println(c2);//[1, 2, 3]

        //5.迭代/遍历集合
        /*迭代步骤
        * 1.获取集合的迭代器 c.iterator
        * 2.判断集合中是否有下一个元素可以迭代 it.hasNext()
        * 3.*/
          Iterator<Integer> it = c2.iterator();//获取迭代器
          while (it.hasNext()){//判断是否有下一个元素可迭代,如果有,循环继续
             // System.out.println(it.next());
              Integer num = it.next();//获取本轮迭代到的元素
              System.out.println("本次迭代到的元素:"+num);

          }
    }
}