首先说说java中常用的集合容器:ArrayList,LinkedList,Vector,HashMap,Hashtable,HashSet,TreeSet。【就个人认为】

java集合容器本人理解为2大类:一类是诸如List和Set集合,另一类是诸如Map集合。

【ArrayList集合】:

1.该集合中可以存放重复元素;

arraylist.add(new goods("10010","惠普笔记本",5529));
arraylist.add(new goods("10010","惠普笔记本",5529));
arraylist.add(new goods("10011","小米手机",2999));

2.获取该集合中所有元素内容时,可以通过for循环遍历;

for(int i=0;i<arraylist.size();i++){
            goods temp1 = (goods)arraylist.get(i);       //注意:获取集合中的对象时,类型强制转换
            System.out.println("__编号:"+temp1.getNo()+"__名称:"+temp1.getName()+"__价格:"+temp1.getPrice());
        }

3.在该集合中如何查找某个具体对象?通过传入对象的某个属性值来比较;

//根据某个员工的姓名查询该员工的信息
    public void showStaff(String name){
        //遍历整个集合
        for(int i=0;i<arraylist.size();i++){
            //取出员工对象
            Staff staff =(Staff)arraylist.get(i);         //类型强制转换
            //比较员工姓名,输出详细信息
            if(staff.getName().equals(name)){
                System.out.println("姓名"+name+"的薪水是:"+staff.getSalary());
            }
        }
    }

【LinkedList集合】:

1.该集合中也可以存放重复元素;

2.该集合提供元素存放时的数据结构,先进先出[addList()]和先进后出[addFrist()];

3.该集合提供一次性删除集合中所有的元素[removeAll()];

4.获取该集合中所有元素内容时,可以通过for循环遍历;

for(int i=0;i<linkedlist.size();i++){
            goods temp1 = (goods)linkedlist.get(i);            //注意:获取集合中的对象时,类型强制转换
            System.out.println("__编号:"+temp1.getNo()+"__名称:"+temp1.getName()+"__价格:"+temp1.getPrice());
        }

【HashMap集合】:

1.该集合中不允许存在键重复的元素,如果用户在添加键相同而值不同的对象时,容器会自动覆盖原先存在键的值【也就是说该集合中的键是惟一的】;

hashmap.put("30010", new goods("30010","无线鼠标",545.65f));

hashmap.put("30010", new goods("30010","覆盖",0.001f));    //注意:30010对应的值会覆盖上面30010对应的值
hashmap.put("30020", new goods("30020","无线键盘",984.23f));

2.该集合在获取集合内所有的对象时,采用迭代器的方法来获取;注意不能用for循环遍历;

Iterator iterator = hashmap.keySet().iterator();
        while(iterator.hasNext()){        //方法hasNext()就是判断该集合中是否还有下一个元素
            //取出key
            String key = iterator.next().toString();         //将取出的key转化为字符串类型的
            goods goods2 = (goods)hashmap.get(key);     //通过键找到对象,类型强制转换
            System.out.println("编号:"+goods2.getNo()+"__名称:"+goods2.getName()+"__价格:"+goods2.getPrice());
            
        }

3.在该集合中如何查找某个具体对象?就是通过键来查找;

//根据商品编号判断该商品是否存在;若存在,获取该商品的属性值
        if(hashmap.containsKey("30010")){      //根据集合中元素的键来判断该元素是否存在
            System.out.println("该商品存在。");
            goods goods1 = (goods)hashmap.get("30010");            //获取商品对象,类型强制转换
            System.out.println("该商品的编号是:"+goods1.getNo());
            System.out.println("该商品的名字是:"+goods1.getName());
            System.out.println("该商品的价格是:"+goods1.getPrice());
        }else{
            System.out.println("该商品不存在。");
        }

【HashMap和Hashtable的区别:】

1.同步性;HashMap是异步的,而Hashtable是同步的。

2.是否存放NULL;HashMap可以存放NULL键和NULL值,而Hashtable不可存放NULL键和NULL值,在运行时会报异常。

【注意误区:】

一);

在比较2个对象的内容是否相等,不能用if(Object1==Object2){}的思维来完成,因为该思维方式是比较这俩个对象在内存中的地址,无论如何是不想等的,就算这俩个对象的内容是一致的,它返回的值依然是false,原因是这俩个对象在内存中的存放位置是不同的。应该用equals()方法来完成,具体的通过一个例子来演示:

String str1 = new String("abc");

String str2 = new String("abc");

if(str1 == str2){

  System.out.println("不相等");                //这句话是不可能输出的,因为在这儿比较的是它们的内存地址,它们的地址是不相同的

}

if(str1.equals(str2)){

  System.out.println("相等");               //这句话成功打印,因为在这儿比较的是它们的内容值,它们的值是完全一致的

}

Java Collection知识总结的更多相关文章

  1. Java基础知识回顾之七 ----- 总结篇

    前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...

  2. Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  3. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  4. Java开发知识之Java中的集合Set接口以及子类应用

    ---恢复内容开始--- Java开发知识之Java中的集合Set接口以及子类应用 一丶Set接口以及作用 在上一讲.我们熟悉了接口的实现图.以及自己各有的子类. List接口主要存储的数据是可以重复 ...

  5. Java开发知识之Java中的集合上List接口以及子类讲解.

    Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就 ...

  6. 毕向东—Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  7. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  8. Java基础知识常识总结

    Java基础知识常识总结 1.面向对象的特征以及对他的理解? 封装,继承,多态,如果再增加一条就是抽象. 2.Object有几种方法,分别是什么? 在JDK1.5中的11种方法,分别有: toStri ...

  9. java基础知识一览(二)

    一.java基础知识 1.一个文件中只能有一个public的类,因为他的类名要求和文件名相同. 2.classpath变量可以设置其它目录下的类. 例如:类文件所在目录是:F:\Javajdk,那么没 ...

随机推荐

  1. SSH实战 · 唯唯乐购项目(上)

    前台需求分析 一:用户模块 注册 前台JS校验 使用AJAX完成对用户名(邮箱)的异步校验 后台Struts2校验 验证码 发送激活邮件 将用户信息存入到数据库 激活 点击激活邮件中的链接完成激活 根 ...

  2. iOS逆向工程之Theos

    如果你对iOS逆向工程有所了解,那么你对Tweak并不陌生.那么由Tweak我们又会引出Theos, 那么什么是Theos呢,简单一句话,Theos是一个越狱开发工具包,Theos是越狱开发工具的首先 ...

  3. Openfiler配置RAC共享存储

    将 Openfiler 用作 iSCSI 存储服务器,主要操作步骤如下: 1.设置 iSCSI 服务 2.配置网络访问 3.指定物理存储器并对其分区 4.创建新的卷组 5.创建所有逻辑卷 6.为每个逻 ...

  4. EC笔记:第4部分:22、所有成员都应该是private的

    EC笔记:第4部分:22.所有成员都应该是private的 更简单的访问 用户不用记得什么时候该带上括号,什么时候不用带上括号(因为很确定的就要带上括号) 访问限制 对于public的成员变量,我们可 ...

  5. “此网页上的某个 Web 部件或 Web 表单控件无法显示或导入。找不到该类型,或该类型未注册为安全类型。”

    自从vs装了Resharper,看见提示总是手贱的想去改掉它.于是乎手一抖,把一个 可视web部件的命名空间给改了. 喏,从LibrarySharePoint.WebPart.LibraryAddEd ...

  6. BPM配置故事之案例13-触发消息通知

    老李:小明! 小明:--见你就没好事,又要我干嘛? 老李:额,小事小事,最近很多部门都觉得Boss的审批速度太慢了,能不能以后给审批人一个消息提醒? 小明:--有一种不太好的预感 老李:怎么,很困难么 ...

  7. php+websocket搭建简易聊天室实践

    1.前言 公司游戏里面有个简单的聊天室,了解了之后才知道是node+websocket做的,想想php也来做个简单的聊天室.于是搜集各种资料看文档.找实例自己也写了个简单的聊天室. http连接分为短 ...

  8. mysql 大表拆分成csv导出

    最近公司有一个几千万行的大表需要按照城市的id字段拆分成不同的csv文件. 写了一个自动化的shell脚本 在/home/hdh 下面 linux-xud0:/home/hdh # lltotal 1 ...

  9. 初学DirectX11, 留个纪恋。

    以前学的是openGL, 最近才开始学DirectX11,写了个很垃圾的代码,怀念以前的glPushMatrix(), glPopMatrix(), glBegin(), glEnd(), 多简单啊, ...

  10. 博客已经迁移至 http://barretlee.com/entry/,时而同步分享到这里

    博客园是一个十分好的写作平台,不过个人比较喜欢倒腾,所以将文章都做了搬迁. 博客已经迁移至 http://barretlee.com/entry/,感谢一直以来的关注和支持. 博客订阅地址: http ...