欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中Collection、List、Set、Map之間的關(guān)系總結(jié)

 更新時間:2019年02月25日 11:17:15   作者:勁火星空  
今天小編就為大家分享一篇關(guān)于Java中Collection、List、Set、Map之間的關(guān)系總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

初學java,單個的接觸有點迷糊,所以總結(jié)下他們的關(guān)系

一、關(guān)系

Collection

--List:以特定順序存儲

--ArrayList、LinkList、Vector

--Set:不能包含重復(fù)的元素

--HashSet、TreeSet

Map

--HashMap、HashTable、TreeMap

二、分別講解

Collection:Collection是一個父接口,List和Set是繼承自他的子接口,Collection是最基本的集合接口,Java SDK中不提供直接繼承自Collection的類,而是提供繼承自他子接口的類,如List何Set。所用的Collection類都支持一個Iterator()方法來遍歷。

List:List接口是有序的,會精確的將元素插入到指定的位置,和下面的Set接口不同,List接口允許有相同元素

ArrayList:實現(xiàn)可變大小的數(shù)組,允許所有的元素,不是同步的,也就是沒有同步方法

LinkList:允許null元素,通常在首部或者尾部操作,所以常被使用做堆棧(stack)、隊列(queue)和雙向隊列(deque)

Vector:類似于ArrayList,但Vector是同步的,Stack繼承自Vector

Set:是一種不包含重復(fù)元素的Collection接口

HashSet:不能有重復(fù)元素,底層是使用HashMap來實現(xiàn)的

Map:此接口實現(xiàn)的Key到Value的映射,一個Map中不能包含相同的Key,每個Key只能映射一個Value

HashTable:實現(xiàn)了一個Key-Value的哈希表,每一個非null元素都可作為Key或者Value,HashTable是同步的

HashMap:和HashTable的不同之處是,非同步的,且允許null元素的存在

三、Array和Arrays   Collection和Collections

Array:是所以隨機訪問一串對象中,最有效率的一種,但是元素類型必須相同,且容量固定無法改變。

Arrays:此靜態(tài)類專門操作array,提供搜索、排序、復(fù)制等靜態(tài)方法

Collection:Java.util下的一個接口,是各種集合結(jié)構(gòu)的父接口

Collections:Java.util下的一個專用靜態(tài)類,他包含各種集合操作的靜態(tài)方法,包括對集合的搜索、排序、線程安全等操作。

四、總結(jié)

涉及到堆棧、隊列等操作,使用List接口,快速插入和刪除應(yīng)使用LinkList,隨機訪問元素使用ArrayList

單線程使用非同步類,多線程使用同步類

注意對HashTable的操作,作為Key的對象要覆寫equals和hashCode方法

在各種Map中HashMap用于快速查找

最長使用的是ArrayList、HashSet、HashMap、Array

下面是一個找出元素字符串數(shù)組中最長字符串的例子

package Collection;
import java.util.Arrays; 
import java.util.Collections; 
import java.util.Comparator; 
import java.util.List; 
public class MasString {
 public static void main(String args []){
 String str[] = new String[]{"zhans", "lis", "wangwt", "quliu"};
 List<String> list = Arrays.asList(str);
 String max = Collections.max(list, new strSort()); // Collections靜態(tài)函數(shù)的使用
 System.out.println("max: "+max);
 }
}
class strSort implements Comparator<String>{
<span style="white-space:pre"> </span>// 一個比較器重新定義
 public int compare(String s1, String s2){
 if(s1.length() < s2.length()){
  return -1;
 }
 if(s1.length() < s2.length()){
  return s1.compareTo(s2);
 }
 else return 1;
 }
}

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Java函數(shù)式編程(六):Optional

    Java函數(shù)式編程(六):Optional

    這篇文章主要介紹了Java函數(shù)式編程(六):Optional,本文是系列文章的第6篇,其它文章請參閱本文底部的相關(guān)文章,需要的朋友可以參考下
    2014-09-09
  • 控制臺顯示java冒泡排序流程示例

    控制臺顯示java冒泡排序流程示例

    這篇文章主要介紹了控制臺顯示java冒泡排序流程示例,需要的朋友可以參考下
    2014-03-03
  • springboot2.0使用Hikari連接池的方法(替換druid)

    springboot2.0使用Hikari連接池的方法(替換druid)

    這篇文章主要介紹了springboot 2.0使用Hikari連接池的方法(替換druid),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Java中死鎖的原理實戰(zhàn)分析

    Java中死鎖的原理實戰(zhàn)分析

    這篇文章主要介紹了Java中死鎖的原理,結(jié)合具體案例形式分析了java死鎖形成的相關(guān)原理,需要的朋友可以參考下
    2019-08-08
  • Java微信支付-微信紅包

    Java微信支付-微信紅包

    本篇文章介紹了Java微信支付-微信紅包,可以實現(xiàn)微信公眾號發(fā)紅包功能,具有一定的參考價值,有需要的可以了解一下。
    2016-10-10
  • IDEA集成MyBatis Generator插件的使用

    IDEA集成MyBatis Generator插件的使用

    這篇文章主要介紹了IDEA集成MyBatis Generator插件的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 使用Idea或Datagrip導入excel數(shù)據(jù)的方法

    使用Idea或Datagrip導入excel數(shù)據(jù)的方法

    這篇文章主要介紹了使用Idea或Datagrip導入excel數(shù)據(jù)的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 導出maven項目依賴的jar包(圖文教程)

    導出maven項目依賴的jar包(圖文教程)

    下面小編就為大家?guī)硪黄獙С鰉aven項目依賴的jar包(圖文教程)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java之JFrame輸出Helloworld實例

    Java之JFrame輸出Helloworld實例

    這篇文章主要介紹了Java之JFrame輸出Helloworld的方法,以輸出Helloworld的實例分析了JFrame的簡單入門技巧,需要的朋友可以參考下
    2015-02-02
  • 對比Java設(shè)計模式編程中的狀態(tài)模式和策略模式

    對比Java設(shè)計模式編程中的狀態(tài)模式和策略模式

    這篇文章主要介紹了Java設(shè)計模式編程中的狀態(tài)模式和策略模式對比,文中列舉了兩種模式的相似點和不同點,并都舉了代碼的實例作為參照,需要的朋友可以參考下
    2016-04-04

最新評論