search
HomeJavajavaTutorialWhat is the data structure of Java collection framework

    1. What is a collection framework?

    In Java, there is a set of ready-made data structures, such as sequence lists, linked lists, queues, stacks, priority queues, hash tables, etc., which are encapsulated into corresponding interfaces/classes for programmers to directly To use it, you only need to create the relevant objects to use, without the need to implement its internal structure.

    A collection is a data structure that stores and manages multiple elements, where these elements are placed in a single unit and can be processed through operations such as addition, deletion, modification, and query. For example, a set of playing cards (a collection of cards), an address book (a set of mapping relationships between names and phone numbers), etc. can be used as examples.

    The picture below is very important! ! ! You need to remember its commonly used interfaces and classes! !

    What is the data structure of Java collection framework

    What is the data structure of Java collection framework

    Because the map interface does not implement the Iterable interface, how to traverse the elements in it?

    		Map<Integer,String> map = new HashMap();
            map.put(1,"jack");
            map.put(2,"tom");
            Set<Map.Entry<Integer, String>> entries = map.entrySet();
            // 使用迭代器进行遍历 ,增强 for同理
            Iterator<Map.Entry<Integer, String>> iterator = entries.iterator();
            while (iterator.hasNext()) {
                Map.Entry<Integer, String> entry =  iterator.next();
                System.out.println(entry.getKey() + " " + entry.getValue());
            }

    Taking HashMap as an example, you can call its entrySet() method to encapsulate each key-value pair in the map into a Map.Entry object. Because the Set interface is used to receive it, you can use iterators or for-each() to traverse, and each entry object has getKey() and getValue() methods to obtain the key value and value value respectively.

    Basic relationship (simplified version)

    What is the data structure of Java collection framework

    2. Collection interface

    is generally accepted by an interface or class that implements the Collection interface Specifically implement the object of the class, because as can be seen from the above figure, the Collection interface is the parent interface of a series of interfaces and classes. It has relatively few internally implemented methods, so it cannot call some common methods of subclasses.

    1. Specify the object type in the corresponding collection through generics

    Note: The type passed in here can only be a reference type. If it is a basic data type, its wrapper class should be used. Specify

    		Collection<String> collection1 = new ArrayList();
            collection1.add("haha");
            collection1.add("world");
            Collection<Integer> collection2 = new ArrayList();
            collection2.add(1);
            collection2.add(2);
            //collection2.add("hh");// 这里会报错,不符合传入的指定类型Integer

    2.Collection common methods use

    method function
    void clear() Delete all elements in the collection
    boolean isEmpty() Determine whether the collection does not have any elements, Commonly known as the empty set
    boolean remove(Object e) If element e appears in the set, delete one of them
    boolean add(E e) Put element e into the collection
    int size() Return the number of elements in the collection
    Object[] toArray() Returns an array containing all elements in the collection

    Note: In the last Object[] toArray() method, an array of type Object[] is returned. The underlying method is: take out the elements in the collection one by one, convert them into Object objects, and store them in the array to be returned. , and finally returns an array of type Object[]. A type conversion exception is thrown when converting to a String[] array.

    What is the data structure of Java collection framework

    Because there is no guarantee that every element in the array is converted to String, but it is only forced to be converted into an array of type String[], so if you have to To convert, you need to first traverse the returned results, convert them to String type one by one, and finally assign them to an array of String[] type. It is not recommended to convert the array type as a whole in Java.

    		Object[] objects = collection1.toArray();
            String[] strings = new String[objects.length];
            for (int i = 0; i < objects.length; i++) {
                strings[i] = (String)objects[i];// 一个一个转,但是没啥必要
            }

    3. Map interface

    stores data in the form of key-value pairs. The key value here is unique, and each key value can correspond to its The corresponding value value. Different key values ​​can correspond to the same value. HashMap: When storing elements, the internal hashCode function is called based on its key value to find the location where the element should be placed. Therefore, the elements in the hash table are not stored in the order in which they are stored.

    Map common methods use

    ##Set> entrySet()Return all key-value pairsboolean isEmpty()Determine whether it is emptyint size()Return the number of key-value pairs
    		HashMap<Integer, String> map = new HashMap<>();
    
            // put()
            map.put(1,"张飞");// 这里的 key 值唯一
            map.put(1,"宋江");// 如果二次插入的 key 值之前有,则替换其 value值
            map.put(2,"Jack");
            System.out.println(map);
    
            // get()
            String s1 = map.get(1);// 返回 宋江
            String s3 = map.getOrDefault(3,"三团");// 未找到,返回 三团
    
            // entrySet()
            // 该方法返回一个 Set<Map.Entry<Integer, String>> 对象
            Set<Map.Entry<Integer, String>> entries = map.entrySet();
            for (Map.Entry<Integer, String> entry : entries) {
                // 通过 entry.getKey() 和 entry.getValue() 获取每个entry对应的 k, v值
                System.out.println(entry.getKey() + " " + entry.getValue());
            }

    What is the data structure of Java collection framework

    4、具体的实现类

    What is the data structure of Java collection framework

    Method Function
    V get(Object k) Find the corresponding v according to the specified k
    V getOrDefault(Object k, V defaultValue) According to the specified k Search for the corresponding v, if not found, return the default value
    V put(K key, V value) Put the specified k-v into the Map
    boolean containsKey(Object key) Judge whether it contains key
    boolean containsValue(Object value) Judge whether it contains value

    The above is the detailed content of What is the data structure of Java collection framework. For more information, please follow other related articles on the PHP Chinese website!

    Statement
    This article is reproduced at:亿速云. If there is any infringement, please contact admin@php.cn delete
    Java Platform Independence: Compatibility with different OSJava Platform Independence: Compatibility with different OSMay 13, 2025 am 12:11 AM

    JavaachievesplatformindependencethroughtheJavaVirtualMachine(JVM),allowingcodetorunondifferentoperatingsystemswithoutmodification.TheJVMcompilesJavacodeintoplatform-independentbytecode,whichittheninterpretsandexecutesonthespecificOS,abstractingawayOS

    What features make java still powerfulWhat features make java still powerfulMay 13, 2025 am 12:05 AM

    Javaispowerfulduetoitsplatformindependence,object-orientednature,richstandardlibrary,performancecapabilities,andstrongsecurityfeatures.1)PlatformindependenceallowsapplicationstorunonanydevicesupportingJava.2)Object-orientedprogrammingpromotesmodulara

    Top Java Features: A Comprehensive Guide for DevelopersTop Java Features: A Comprehensive Guide for DevelopersMay 13, 2025 am 12:04 AM

    The top Java functions include: 1) object-oriented programming, supporting polymorphism, improving code flexibility and maintainability; 2) exception handling mechanism, improving code robustness through try-catch-finally blocks; 3) garbage collection, simplifying memory management; 4) generics, enhancing type safety; 5) ambda expressions and functional programming to make the code more concise and expressive; 6) rich standard libraries, providing optimized data structures and algorithms.

    Is Java Truly Platform Independent? How 'Write Once, Run Anywhere' WorksIs Java Truly Platform Independent? How 'Write Once, Run Anywhere' WorksMay 13, 2025 am 12:03 AM

    JavaisnotentirelyplatformindependentduetoJVMvariationsandnativecodeintegration,butitlargelyupholdsitsWORApromise.1)JavacompilestobytecoderunbytheJVM,allowingcross-platformexecution.2)However,eachplatformrequiresaspecificJVM,anddifferencesinJVMimpleme

    Demystifying the JVM: Your Key to Understanding Java ExecutionDemystifying the JVM: Your Key to Understanding Java ExecutionMay 13, 2025 am 12:02 AM

    TheJavaVirtualMachine(JVM)isanabstractcomputingmachinecrucialforJavaexecutionasitrunsJavabytecode,enablingthe"writeonce,runanywhere"capability.TheJVM'skeycomponentsinclude:1)ClassLoader,whichloads,links,andinitializesclasses;2)RuntimeDataAr

    Is java still a good language based on new features?Is java still a good language based on new features?May 12, 2025 am 12:12 AM

    Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)Lambdaexpressionsenhancecodereadabilityandenablefunctionalprogramming.2)Streamsallowforefficientdataprocessing,particularlywithlargedatasets.3)ThemodularsystemintroducedinJava9im

    What Makes Java Great? Key Features and BenefitsWhat Makes Java Great? Key Features and BenefitsMay 12, 2025 am 12:11 AM

    Javaisgreatduetoitsplatformindependence,robustOOPsupport,extensivelibraries,andstrongcommunity.1)PlatformindependenceviaJVMallowscodetorunonvariousplatforms.2)OOPfeatureslikeencapsulation,inheritance,andpolymorphismenablemodularandscalablecode.3)Rich

    Top 5 Java Features: Examples and ExplanationsTop 5 Java Features: Examples and ExplanationsMay 12, 2025 am 12:09 AM

    The five major features of Java are polymorphism, Lambda expressions, StreamsAPI, generics and exception handling. 1. Polymorphism allows objects of different classes to be used as objects of common base classes. 2. Lambda expressions make the code more concise, especially suitable for handling collections and streams. 3.StreamsAPI efficiently processes large data sets and supports declarative operations. 4. Generics provide type safety and reusability, and type errors are caught during compilation. 5. Exception handling helps handle errors elegantly and write reliable software.

    See all articles

    Hot AI Tools

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Clothoff.io

    Clothoff.io

    AI clothes remover

    Video Face Swap

    Video Face Swap

    Swap faces in any video effortlessly with our completely free AI face swap tool!

    Hot Article

    Hot Tools

    PhpStorm Mac version

    PhpStorm Mac version

    The latest (2018.2.1) professional PHP integrated development tool

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    SecLists

    SecLists

    SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

    Dreamweaver Mac version

    Dreamweaver Mac version

    Visual web development tools