实训第五天

一、可变参数

二、集合

1.collection集合常用方法

代码演示:

public class CollectionTest {
    @Test
    public void collectionTest(){
        //接口类型的引用指向实现的对象,形成多态
        Collection collection = new ArrayList();
        System.out.println(collection);//返回toString方法,返回此 collection 的字符串表示形式。该字符串表示形式由 collection 元素的列表组成,这些元素按其迭代器返回的顺序排列,并用方括号 ("[]") 括起来。相邻元素由字符 ", "(逗号加空格)分隔。
        //向集合中添加元素,该方法的形参要求是object类型
        boolean b = collection.add("one");//[one]
        System.out.println(collection);
        System.out.println("b =" + b);//true,如果此 collection 由于调用而发生更改,则返回 true。(如果此 collection 不允许有重复元素,并且已经包含了指定的元素,则返回 false。)
        collection.add(2);
        System.out.println(collection);
        collection.add('a');
        collection.add(3.14);
        collection.add("张三");
        System.out.println(collection);
        //判断是否包含对象
        b = collection.contains("two");
        System.out.println("b = " + b);//false
        //判断集合是否为空
        b = collection.isEmpty();
        System.out.println("b = " + b);//false
        System.out.println("集合中的元素有:" + collection);
        b = collection.remove("one");
        System.out.println("b = " + b);//true
        System.out.println("集合中的元素有:" + collection);
        //将集合转换成数组
        Object[] objects = collection.toArray();
        //遍历数组中的元素,方法一
        for(int i=0; i<objects.length; i++){
            System.out.println(objects[i]);
        }
        //将数组换成集合
        List objects1 = Arrays.asList(objects);
//        遍历数组中的元素,方法一
//        for(int i=0; i<objects1.size(); i++){
//            System.out.println(objects1.get(i));
//        }
        System.out.println(objects1);

        //迭代器,遍历集合中的元素,方法二
        Iterator it= objects1.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        //遍历集合中的元素,方法三
        for(Object o : objects1){
            System.out.println(o);
        }
    }

2.List集合

2.1基本概念

        java.util.List集合是Collection集合的子集合,该集合中允许有重复的元素并且有先后放入次序。 该集合的主要实现类有:ArrayList类、LinkedList类、Stack类、Vector类。 其中ArrayList类的底层是采用动态数组进行数据管理的,支持下标访问,增删元素不方便。 其中LinkedList类的底层是采用双向链表进行数据管理的,访问不方便,增删元素方便。 其中Stack类的底层是采用动态数组进行数据管理的,该类主要用于描述一种具有后进先出特征的数据结构,叫做栈(last in first out LIFO)。 其中Vector类的底层是来用动态数组进行数据管理的,该类与ArrayList类
相比属于线程安全的类,效率比较低。

2.2常用方法

代码演示:

@Test
public void listTest() {
    List list = new ArrayList();
    int size = list.size();
    System.out.println(size);//0
    System.out.println(list);//[]
    //向集合中添加元素
    list.add(0, "one");
    list.add(1, 2);
    list.add(2, '3');
    list.add(3, 3.14);
    System.out.println(list);
    List list1 = new ArrayList();
    list1.add("two");
    list1.add(10);
    list.addAll(list1);
    System.out.println(list);
    System.out.println("--------");
    //根据下标查看集合中指定位置的元素
    Object o = list.get(3);
    System.out.println(o);
    //根据下标修改集合中指定位置的元素
    o = list.set(0, 1);
    System.out.println("下标为0的位置修改的元素为:" + o);
    System.out.println(list);

    //根据下标删除集合指定位置的元素
    o = list.remove(0);
    System.out.println("删除的元素为:" + o);
    System.out.println("====================");
    System.out.println(list);
    List list2 = list.subList(0, 3);//获取子list,前闭后关
    System.out.println("list集合:" + list);
    System.out.println("子集合中的元素:" + list2);
    list2.remove(0);
    System.out.println("list集合:" + list);
    System.out.println("子集合中的元素:" + list2);
}

3.Queue集合

3.1基本概念

        java.util.Queue集合是Collection集合的子集合,与List集合属于平级关系。 该集合的主要用于描述具有先进先出特征的数据结构,叫做队列(first in first out FIFO)该集合的主要实现类是LinkedList类,因为该类在增删方面比较有优势。

3.2常用方法

代码演示:

@Test
public void queueTest(){
    //准备一个Queue集合
    Queue<Integer> queue = new LinkedList<>();
    for(int i = 1; i<=5; i++){
        queue.offer(i * 11);
        System.out.println(queue);
    }
    //然后查看队首元素并打印
    Integer it = queue.peek();
    System.out.println("队首元素:" + it);
    //然后将队列中所有数据依次出队并打印
    System.out.println("===============");
    //poll
    int len = queue.size();
    for(int i=1; i<=len; i++){
        Integer it1 = queue.poll();
        System.out.println(it1);
    }
}

4.泛型机制

4.1基本概念

        通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做Obiect类型放入的,因此从集合中取出元时也是0bject类型,为了表达该元素真实的数据类型,则需要强制类型转换,而强制类型转换可能会引发类型转换异常。 为了避免上述错误的发生,从jdk1.5开始增加泛型机制,也就<数据类型>的方式来明确要求该集合中可以存放的元素类型,若放入其它类型的元素则编译报错,如:

        List<String>  it1  =  new  LinkedList<String>();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值