java list set map的区别_Java集合类List/Set/Map的区别和联系
Java集合類List/Set/Map的區(qū)別和聯(lián)系
一、Array , Arrays
Java所有“存儲及隨機訪問一連串對象”的做法,array是最有效率的一種。
1、
效率高,但容量固定且無法動態(tài)改變。
array還有一個缺點是,無法判斷其中實際存有多少元素,length只是告訴我們array的容量。
2、Java中有一個Arrays類,專門用來操作array。
arrays中擁有一組static函數(shù),
equals():比較兩個array是否相等。array擁有相同元素個數(shù),且所有對應(yīng)元素兩兩相等。
fill():將值填入array中。
sort():用來對array進行排序。
binarySearch():在排好序的array中尋找元素。
System.arraycopy():array的復(fù)制。
二、Collection , Map
若撰寫程序時不知道究竟需要多少對象,需要在空間不足時自動擴增容量,則需要使用容器類庫,array不適用。
1、Collection 和 Map 的區(qū)別
容器內(nèi)每個為之所存儲的元素個數(shù)不同。
Collection類型者,每個位置只有一個元素。
Map類型者,持有 key-value pair,像個小型數(shù)據(jù)庫。
2、各自旗下的子類關(guān)系
Collection
--List:將以特定次序存儲元素。所以取出來的順序可能和放入順序不同。
--ArrayList / LinkedList / Vector
--Set :
不能含有重復(fù)的元素
--HashSet / TreeSet
Map
--HashMap
--HashTable
--TreeMap
3、其他特征
* List,Set,Map將持有對象一律視為Object型別。
*
Collection、List、Set、Map都是接口,不能實例化。
繼承自它們的 ArrayList, Vector, HashTable, HashMap是具象class,這些才可被實例化。
*
vector容器確切知道它所持有的對象隸屬什么型別。vector不進行邊界檢查。
三、Collections
Collections是針對集合類的一個幫助類。提供了一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程完全化等操作。
相當(dāng)于對Array進行類似操作的類——Arrays。
如,Collections.max(Collection coll);
取coll中最大的元素。
Collections.sort(List list); 對list中元素排序
四、如何選擇?
1、容器類和Array的區(qū)別、擇取
*
容器類僅能持有對象引用(指向?qū)ο蟮闹羔?,而不是將對象信息copy一份至數(shù)列某位置�
相關(guān)文檔:
編寫一個簡單的文本編輯器,要求:具有打開、保存、新建,粘貼、復(fù)制等功能;具有一個工具條。編寫一個類似 Windows 記事本的簡單程序,該程序能夠創(chuàng)建新文件、讀取已經(jīng)存在的文件、查看和修改文本以及保存為文本文件。
暫時還不會做,努力中。。。。。。。。 ......
Set和數(shù)學(xué)中的集合是同一個概念,就是沒有重復(fù)元素的集合。
這篇文章主要論述了Set是如何實現(xiàn)"沒有重復(fù)元素"(no duplicate elements)的,以及闡述了什么是“重復(fù)”(duplicate),是相同的地址空間?是equals的返回值為true?是compareTo的返回值為0 ?還是有相同的hashCode?本文還給出了在什么情況下使用什� ......
package barchartdemo1;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.Numbe ......
BigDecimal類
雙精度浮點型變量double可以處理16位有效數(shù)。在實際應(yīng)用中,需要對更大或者更小的數(shù)進行運算和處理。Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進行精確的運算。表5.7中列出了BigDecimal類的主要構(gòu)造器和方法。
表5.7 BigDecimal類的主要構(gòu)造器和方法
構(gòu)造器描述
BigDecimal(in ......
最簡單的服務(wù)器接受單用戶請求的socket編程模型,代碼寫得不好,只是用來闡明意思
client side
import java.net.*;
import java.util.*;
import java.io.*;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
tr ......
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的java list set map的区别_Java集合类List/Set/Map的区别和联系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql partition 性能_通
- 下一篇: Java面向对象编程篇3——接口与抽象类