您的位置 首页 java

Java基础-今日内容介绍(collection、map集合框架、可变参数)

今天我们对集合框架进行一下总结,首先看一下集合框架的结构

Java基础-今日内容介绍(collection、map集合框架、可变参数)

Java集合框架


Collection知识点: Collection接口中的方法、是集合中 所有实现类必须拥有的方法 。比如:

1.boolean remove(Object o)移除集合中指定的元素。

2.Object[] toArray() 集合中的元素,转成一个数组中的元素, 集合转成数组

Java基础-今日内容介绍(collection、map集合框架、可变参数)

集合转成数组

3.void clear() 清空集合中的所有元素。

Java基础-今日内容介绍(collection、map集合框架、可变参数)

清空操作


List知识点: List集合是可变数组,继承Collection接口。List接口特点: 有序,有 索引 ,可以重复元素 。相关操作:

set(int index, E)//修改指定索引上的元素, 返回被修改之前的元素。

Java基础-今日内容介绍(collection、map集合框架、可变参数)

List的Set方法

remove(int index)//移除指定索引上的元素、 返回被删除之前的元素。

Java基础-今日内容介绍(collection、map集合框架、可变参数)

List的remove方法

add(int index, E)// 将元素插入到列表的指定索引上,带有索引的操作,防止越界问题.

Java基础-今日内容介绍(collection、map集合框架、可变参数)

List的add方法

  1. ArrayList知识点:底层数组实现,查询快,增删慢。 默认10个元素。

  2. LinkedList 知识点:底层 链表 实现,增删块,查询慢,LinkedList提供大量对首尾的操作(removeFirst、removeLast、getFirst、getLast、addFirst、addLast)。 子类的特有功能,不能多态调用 。他们 线程 都不安全,因此运行速度快。

值得注意的是: 就是在遍历的过程中,使用了集合方法修改了集合的长度,不允许的,称为并发修改异常。

Java基础-今日内容介绍(collection、map集合框架、可变参数)

并发修改异常


Set集合知识点: Set接口,特点不重复元素,没索引,Set接口的实现类:

HashSet ( 哈希表 ),特点: 无 序集合,存储和取出的顺序不同,没有索引,不存储重复元素 ,代码的编写上,和ArrayList完全一致, hashset底层就是hashmap 默认16 个元素

Java基础-今日内容介绍(collection、map集合框架、可变参数)

不允许重复

HashSet集合的自身特点:底层数据结构是哈希表(通过 hashcode 进行存储),存储,取出都比较快 、 线程不安全,运行速度快。

LinkedHashSet: LinkedHashSet 基 于链表的哈希表实现 。 继承自HashSet。双向链表实现。LinkedHashSet 自身特性, 具有顺序,存储和取出的顺序相同的 线程不安全的集合,运行速度块

(hashset 取出不一定按顺序,LinkedHashSet取出是有序的,但是都不允许重复)


对于自定义对象判断是否重复,需要重写 hashcode 和equals方法 。我们先看看String类是如何判断重复的

Java基础-今日内容介绍(collection、map集合框架、可变参数)

先查看hashcode是否一样(不同的元素hash值有可能一样,哈希表默认长度是16,加载因子是0.75,此时性能最好),当HashCode一样的时候,我们再调用equals方法判断是否相等。当我们需要判断自定义对象的时候,我们需要告诉计算机我们是如何判断的。

Java基础-今日内容介绍(collection、map集合框架、可变参数)

自定义对象判断重复

然后再Person类里面重写hashCode和equals方法

Java基础-今日内容介绍(collection、map集合框架、可变参数)

重写hashCode和equals(可以代码自动生成,也可以自己写)

值得注意的一点:

Java基础-今日内容介绍(collection、map集合框架、可变参数)


Map集合关键词 :键值对。Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合。

HashMap集合实例:

Java基础-今日内容介绍(collection、map集合框架、可变参数)

hashmap的remove方法

Java基础-今日内容介绍(collection、map集合框架、可变参数)

hashmap的get方法

Map集合的遍历:keySet然后get值来遍历(不能保证顺序)。 增强for不能遍历map 但是可以遍历set

Java基础-今日内容介绍(collection、map集合框架、可变参数)

map集合的遍历方式

entryset方法获取键值对的关系对象来遍历(不能保证顺序)

Java基础-今日内容介绍(collection、map集合框架、可变参数)

entryset方法获取键值对的关系对象


如果map的键(key)是自定义对象,就需要重写hashcode和equals方法来保证键(key)的唯一性;

Java基础-今日内容介绍(collection、map集合框架、可变参数)

重写hashcode和equals方法来保证键(key)的唯一性

我们可以看到, 当键值重复的时候,后面一个覆盖前面一个 (person类已经重写了hashcode和equals方法来保证键(key)的唯一性,这个和前面的一样)

LinkedHashMap继承HashMap保证迭代的顺序。

Java基础-今日内容介绍(collection、map集合框架、可变参数)

保证迭代的顺序。


Collections:集合操作的工具类实例

Java基础-今日内容介绍(collection、map集合框架、可变参数)


方法的可变参数: JDK1.5新的特性,方法的可变参数

* 前提: 方法参数数据类型确定, 参数的个数任意

* 可变参数语法: 数据类型…变量名

* 可变参数,本质就是一个数组

Java基础-今日内容介绍(collection、map集合框架、可变参数)

Java基础-今日内容介绍(collection、map集合框架、可变参数)


最后抛出一个问题吧,map集合里是可以存map的(map存的是键值对),map存map有点像PHP 的二维数组。

假设一个学校对应两个班级,一个班级对应两个学生(学号+姓名)。

即 学校有两个班的名字(两个键key),通过名字(键key)找到班级。班级的学生都有学号(键key)对应姓名(值)。

因此就需要多遍历一次。具体方式代码有点多,还是使用 keyset或者entrySet方式,参考前面map的遍历方式。

文章来源:智云一二三科技

文章标题:Java基础-今日内容介绍(collection、map集合框架、可变参数)

文章地址:https://www.zhihuclub.com/187631.shtml

关于作者: 智云科技

热门文章

评论已关闭

1条评论

  1. สล็อตเว็บสล็อตออนไลน์ตรงไม่ผ่านเอเย่นต์ไม่มีขั้นต่ำเว็บสล็อตออนไลน์เกมสล็อตแตกหนัก Slotเว็บพนันสล็อตออนไลน์ตรงไม่ผ่านเอเย่นต์ไม่มีขั้นต่ำเว็บเดิมพันสล็อต เกมสล็อตสามารถเล่นผ่านระบบOnlineได้ง่าย เพียงท่านมีมือถือเครื่องเดียว เชื่อมต่อInternetแค่นั้นเว็บเดิมพันสล็อตออนไลน์ที่เล่นได้ทุกวัยไม่ว่าท่านจะอยู่Home ก็ทำได้ร่วมสนุกสนานกับ
    สล็อต สล็อตเว็บหลักตรง ไม่ผ่านนายหน้าที่เราพร้อมบริการ เกมคาสิโนออนไลน์ที่มีGameมากมายนานาประการค่าย ให้ผู้เล่นได้เลือกเล่นกันกล้วยๆสล็อตเว็บใหญ่สล็อตตรง ไม่ผ่านนายหน้าไม่มีอย่างต่ำ จะก่อให้ท่านได้พบกับประสบการณ์ใหม่ๆกับพวกเราสล็อตสลับซับซ้อน โบนัสให้เยอะแยะพร้อมให้บริการแล้วก็มีคณะทำงานมากกว่า200คนที่ดูแลผู้เล่นอยู่ คณะทำงานของเรามีประสบการณ์มากกว่า 2 ปีเว็บสล็อตออนไลน์ล่าสุดไม่ว่าผู้เล่นจะเกิดปัญหาฝากเงิน ถอนเงินไม่มี อย่างน้อยหรือปรารถนาขอคำแนะนำเกี่ยวกับเกมสล็อตออนไลน์ หรือปัญหากับระบบคณะทำงานเราก็สามารถแก้ไขได้อย่างรวดเร็ว ทันใจแน่ๆแม้กระนั้นให้อย่าพลาดโอกาสดีๆกับเราสมัครเป็นสมาชิกใหม่สล็อตเว็บใหญ่สล็อตออนไลน์ตรง โบนัสแตกหนักโปรโมชั่นสล็อตเยอะคอยอยู่ สล็อตแตกง่าย 2022เว็บหลักสล็อตตรงไม่ผ่านเอเย่นต์ไม่มีอย่างน้อยเกมเยอะ เกมสล็อตออนไลน์เยอะไม่ว่าจะเป็นGameSlot,Baccarat,กีฬา|กีฬาออนไลน์|เกมกีฬา|เกมกีฬาออนไลน์|บอล|ฟุตบอล และอื่นๆอีกมากมายที่มีให้แก่คุณนั้นได้สนุกสนานกับเกม สล็อตเว็บตรงสล็อตรวมค่ายเว็บสล็อตออนไลน์ตรง ไม่ผ่านคนกลาง พร้อมจังหวะการชำระเงินเดิมพันที่จะทำให้คุณนั้นลุ้นกันสนุกๆเกมสล็อตแตกหนัก 2022ไม่มีขั้นต่ำปัจจุบันSlot Onlineทำร้ายได้เงินจริง ท่านจะต้องมีสติครั้งใดก็ตามเล่นสล็อตออนไลน์สล็อตเว็บตรงตรง ไม่ผ่านคนกลางเว็บสล็อตออนไลน์ตรง กำลังเดินทางมาแรงเครดิตฟรีสล็อตSlotเว็บเล่นสล็อตออนไลน์ตรงกำลังเดินทางมาแรง แจกฟรีเครดิตผู้เล่นที่กำลังมองหาเว็บเดิมพันสล็อตสล็อตออนไลน์ไม่มีขั้นต่ำสล็อตออนไลน์เว็บใหญ่ของเราตอบปัญหาสล็อตเครดิตฟรีเหมาะสมกับผู้เล่นที่อยากเรียน รูปแบบการชนะ ฟิเจอร์เกมเพื่อผู้เล่นนั้นเข้าใจตัวเกม รูปแบบเกมว่าจำเป็นที่จะต้องเล่นSlotเว็บตรงสล็อตออนไลน์ตรง
    ไม่ผ่านคนกลางแบบไหนนับว่าเป็นแนวทางเล็กๆของเกมนั้นจะทำให้ผู้เล่นนั้นมั่นอกมั่นใจทุกการจ่ายเงินพนันเยอะขึ้นเรื่อยๆมีใบสุทธิจังหวะชนะก็จะเพิ่มขึ้นอีกต้วย เล่นให้คุ้นชินเข้าใจให้มากมายเครดิตฟรีสล็อต 2022 เล่นได้ทุกGameไม่ว่าจะเป็นเกมใหม่ๆที่เราได้เก็บมาให้ทุกสัปดาห์หรือเกมมันส์ที่ได้รับความนิยมก็สามารถร่วมบันเทิงใจกันได้กับสล็อตแตกง่ายโดยไม่ต้องฝากเงินเข้าสู่ระบบของเราก่อนเลย และไม่จำต้องใช้เงินของนักพนันเองท่านจะได้พบกับประสบการณ์ที่ท่านอาจไม่เคยพบเจอไหนมาก่อนของเราให้ทุกคนนั้นซาบซึ้งใจแน่นอน โปรโมชั่นมีให้ไม่ยั้งเพื่อเพิ่มความสนุกไปอีกขั้นกับสล็อตออนไลน์สล็อตเว็บหลักตรง ลิขสิทธิ์แท้ ค่ายสล็อตออนไลน์มากเว็บพนันสล็อตออนไลน์ตรงลิขสิทธิ์แท้ ค่ายสล็อตออนไลน์เยอะแยะ เรามีคณะทำงานคัดสรรค์เกมสล็อตออนไลน์สล็อตเว็บตรงตรง ไม่ผ่านเชี่ยวชาญ ไม่มีอย่างน้อย มากไม่น้อยเลยทีเดียวมีแต่ว่าเกมสนุกๆเกมที่การันสนุกสนาน พร้อมสูตรสล็อต 2022 คำนวณด้วยระบบอัตโนมัติ 100% เพิ่มโอกาสเอาชนะการเล่นสล็อตเว็บเดิมพันสล็อตแท้ ไม่มีขั้นต่ำและก็เราได้มีการอัพเดตเกมใหม่ๆอยู่ตลอดเรามีเกมมากมายมากกว่า สองพันGameจากค่ายดังไม่ว่าจะเป็นSLOTPGสล็อต JOKER
    xoสล็อตและก็ฯลฯพร้อมให้บริการผู้เล่นไม่ว่าท่านจะอยู่ที่มุมไหนของโลกกันเลยสล็อตแตกง่ายกับเกมที่มีวิธีการเยอะมาก การหมุนให้ครบทั้งสิ้นราวเคล็ดวิธีง่ายๆใครกันแน่ก็เล่นได้

    Have a look at my page;

网站地图