码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA集合框架

时间:2018-03-29 20:06:07      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:一个   AC   顺序   元素对象   rem   使用   linked   move   强制类型转换   

JAVA集合框架

Collection接口:存储一组不唯一、无序的对象

List接口存储一组不唯一、有序(插入顺序)的对象

Set接口存储一组唯一、无序的对象.

List

在示例中,首先创建了狗狗对象,并通过Set赋值。

//创建dog对象
        Dog dog1=new Dog();
        dog1.setName("小草1");
        dog1.setStrain("拉布拉多");
        Dog dog2=new Dog();
        dog2.setName("小花2");
        dog2.setStrain("泰迪");

然后通过List创建集合对象:

    List<Dog> list=new ArrayList<Dog>();
    list.add(dog1);
    list.add(dog2);

list.size()方法可以判断实际元素的个数,把值赋值给一个变量并输出:

int num=list.size();
System.out.println(num);

可以通过list.remove();移除数组中的元素,括号内可以是元素下标,也可以元素对象值。

输出集合中的元素的方式有3种,分别是:

1、通过for循环遍历输出集合中的元素

2、使用foreach,增强for循环输出集合中的元素

3、使用迭代器循环输出集合中的元素

首先是for循环:

        for (int i = 0; i < list.size(); i++) {
            //取出集合中的每一个元素
            Object object=list.get(i);
            //转化为真实的子类对象(Dog)
            if(object instanceof Dog){
            //强制类型转换
            Dog dog=(Dog)object;
            //输出狗的信息
            System.out.println(dog);
            }
        }

普通for循环遍历集合需要注意的是,在循环输出前,需要使用instanceof关键字转化为真实的子类对象,然后强制类型转换,输出狗的信息。

foreach循环

foreach循环总得来说比较方便,不可忽视的是仍然需要使用instanceof关键字进行判断。

        for (Object object : list) {
            if(object instanceof Dog){
            //强制类型转换
            Dog dog=(Dog)object;
            //输出狗的信息
            System.out.println(dog);
            }
        }

迭代器的使用:

使用Iterator,首先判断集合中是否有元素,进而得到集合中的每一个值。

        Iterator its=list.iterator();
        while (its.hasNext()) {
            Object obj = its.next();
            System.out.println(obj);
        }

程序最终的输出结果为:

狗的名字        狗的品种
小班3        哈士奇
小草1        拉布拉多

LinkedList集合操作

LinkedList list=new LinkedList();
        list.add(staff1);
        list.add(staff2);
list.addFirst(1000);//添加到列表的第一个位置
list.removeFirst();//移除第一个
list.removeLast();//移除最后一个
list.push("222");//增加元素
list.poll();//获取并移除第一个

ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。

LinkedList的特殊方法:

void addFirst(Object o)    在列表的首部添加元素

void addLast(Object o)    在列表的末尾添加元素

Object getFirst()       返回列表中的第一个元素

Object getLast()       返回列表中的最后一个元素

Object removeFirst()     删除并返回列表中的第一个元素

Object removeLast()     删除并返回列表中的最后一个元素

ArrayList和LinkedList分别在何时使用?

ArrayList:

遍历元素和随机访问元素的效率比较高

插入、删除等操作频繁时性能低下

LinkedList

插入、删除元素时效率较高

查找效率较低

集合泛型的示例:

                //要求放入INT类型的数据  Integer
        List<Integer> list=new ArrayList<Integer>();    

valueOf方法,把数字转换成字符串

        list1.add(String.valueOf(1000));

泛型要求添加数据,必须是指定的数据类型。

JAVA集合框架

标签:一个   AC   顺序   元素对象   rem   使用   linked   move   强制类型转换   

原文地址:https://www.cnblogs.com/sonder/p/8671901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!