1. 程式人生 > >態度決定思路,思路決定出路!!!

態度決定思路,思路決定出路!!!

一、概述   

在Java語言中,Java語言的設計者對常用的資料結構和演算法做了下規範(介面)和實現(具體實現介面的類)。所有抽象出來的資料庫結構(演算法)統稱為Java集合框架。Java程式設計師在具體應用時,不必考慮資料結構和演算法實現的細節,只需要用這些類創建出來的一些物件就可以直接應用。

二、集合框架層次結構

       Collection是所有集合的根介面,根據不同的環境和需求,Collection又細分為Set、List、Queue等子介面,在Java.util包中提供了所有使用的集合類。如圖所示:        
        Collection介面方法,如圖:          
三、List介面         List是有序的Collection,使用此介面能夠精確的控制每一個元素的插入位置,及使用索引訪問List中的元素,List儲存元素是有序的、可重複。除了具備Collection介面必備的Iterator()方法外,List還提供了listIterator()方法返回一個ListIterator介面,和標準的Iterator方法相比,多了add()之類的方法,允許新增、刪除元素,還可以向前向後遍歷。  實現List介面常用類:ArrayList、Arraylist、Vector、Stack。         List介面擴充套件的方法:         
       1、ArrayList類 特點:1)元素可以重複;                          2)非同步的集合類;                          3)實現了ICollection和List介面;                          4)容量可以動態增加和減少,大小可變,初始容聯為10;                          5)插入、刪除效率低下,查詢效率高。              例項程式碼如下:            
public static void myArrayList() {
   //例項化ArrayList,指定操作泛型為String資料型別
     LisT list=new ArrayList();
     list.add("周星馳");
     list.add("劉德華");
     list.add("劉德華");
     list.add("周潤發");
     list.add(0, "周杰倫");// 根據索引位置來新增元素
     System.out.println("根據索引取出元素:" + list.get(1));
     System.out.println("查詢元素個數:" + list.size());
     
   //1、使用迭代器將ArrayList中的元素取出
     Iterator iter = list.iterator();
     while (iter.hasNext()) {
		// 使用String接收返回值
		String str = iter.next();
		// 列印
		System.out.println(str);
     }
     
   //2、使用迭代器將ArrayList中的元素取出
     ListIterator listIter = list.listIterator();
     while (listIter.hasNext()) {
		System.out.println("正向迭代元素:"+listIter.next()+"\t"
		                   +"正索引:"+listIter.nextIndex());
     }
     while (listIter.hasPrevious()) {
	    System.out.println("反向迭代元素:"+listIter.previous()+"\t"
	    "反索引:"+listIter.previousIndex());
     }
    
    //3、使用for迴圈將ArrayList中元素取出
      for(String str1 : list){
          System.out.println("for迴圈取出:"+str1)
      }
}
     2、LinkList類 特點:1)插入、刪除元素比較快,查詢效率低;                          2)元素可以為null;                          3)雙向連結串列、堆疊、佇列;                          4)非同步的集合類。              LinkList擴充套件的方法:                             例項程式碼如下:              
public static void myLinkedList(){

   LinkedList list = new LinkedList();
   list.add("1");
   list.add("2");
   list.add("3");

   // 將元素插入到列表開頭
   list.addFirst("jok");
   // 將元素插入到列表結尾
   list.addLast("4");

   // 刪除第一個元素
   list.removeFirst();
   // 刪除最後一個元素
   list.removeLast();

   System.out.println("獲取第一個元素:" + list.getFirst());
   System.out.println("獲取最後一個元素:" + list.getLast());
   
   //使用ListIterator迭代器列印
   ListIterator listiter=list.listIterator();
   while(listiter.hasNext()){
       System.out.println(listiter.next());
   }
}
三、Map介面
Java為資料結構的對映定義了一個介面java.util.map,它有四個實現類,分別是HashMap、Hashtable、LinkedHashMap、TreeMap。          特點:主要儲存鍵值對,根據鍵(key)獲取值(value),鍵(key)不允許重複,但值(value)可重複。          方法概要:                   1、HashMap               特點:底層是雜湊資料表結構,可以使用Null作為鍵或者值,效率比較高,該集合執行緒不是同步的。               程式碼例項:              
// 建立HashMap集合類,其操作泛型為Sring資料型別
	HashMap map = new HashMap();
	map.put("01", "關羽");
	map.put("02", "關羽");
	map.put("03", "關羽");
/**
 * Map集合獲取元素的兩種方式,(原理:將map集合轉換成set,再使用迭代器)
 * 1、keySet:將map中所有的鍵存入到set(set具備迭代器)集合,在根據get方法,
 *    獲取每一個健對應的值 。 
 * 2、entrySet
 */
// 1、通過KeySet()方法獲取map集合中所有鍵Set集合
    Set set = map.keySet();
    Iterator iter = set.iterator();
    while (iter.hasNext()) {
    	// 獲取鍵key
    	String key = iter.next();
    	// 通過鍵key獲取值(value)
    	String value = map.get(key);
    	System.out.println("key:" + key + " " + "value:" + value);
    }
// 2、使用for()迴圈獲取key-value
	for (String key : set) {
		System.out.println("鍵:" + key + " " + "值:" + map.get(key));
	}
// 3、使用entrySet()方法,迴圈獲取key-value
	Set> entrySet = map.entrySet();
	Iterator> iter1 = entrySet.iterator();
	// 簡寫: Iterator> iter1=map.entrySet().iterator();
	while (iter1.hasNext()) {
		Entry en = iter1.next();
		String key = en.getKey();
		String value = en.getValue();
		System.out.println("鍵1:" + key + " " + "值1:" + value);
	}
	// 獲取Map值(value)檢視
	Collection coll = map.values();
	Iterator iter2 = map.values().iterator();
	while (iter2.hasNext()) {
		System.out.println("遍歷獲取value值:" + iter2.next());
	}

相關推薦

態度決定思路思路決定出路

一、概述    在Java語言中,Java語言的設計者對常用的資料結構和演算法做了下規範(介面)和實現(具體實現介面的類)。所有抽象出來的資料庫結構(演算法)統稱為Java集合框架。Java程式設

6年Python開發工程師精心總結學習思路再不看看就涼了

bcd com 類型 學習效率 地方 易用性 append() 增刪 應用 Python學習思路圖解 無論是實用性還是易用性,Python 都是學習編程最具性價比的選擇。 如果你學過其他的語言,再學 Python 將會讓你的技能樹大大地拓寬,有能力涉足更多

奇葩思路獲取各大視訊平臺收費資源思維決定python爬蟲的應用高度

  說起利用Python可以隨意抓取收費資源就很激動,然而這確實是事實。 個人威信:1613161916 原創文章,未得同意切勿轉載! 20行程式碼即可爬取所有網頁的收費視訊,而且這種方法基本很少有人想得到。那麼我先給大家講一下思路,對於Python掌握的不錯的朋友根據我的思路

智商決定你的下限情商決定你的上限關於情商的十大金句

doc 身邊 情商 -i download .com right mage 做自己 1、智商決定你的下限,情商決定你的上限。你說話讓人舒服的程度,能決定你所能抵達的高度。 2、高情商的人善於溝通,善於交流,且坦誠對待,真誠有禮貌。溝通與交流是一種技巧,需要學習,在實踐中不

決定一個程式設計師能走多遠的不是年齡而是這兩個原因

都說程式設計師有“中年危機”,說是程式設計師到了30-40歲就開始不吃香了,甚至會被企業淘汰。那麼事實真的是如此嗎?建議大家不妨看看那些程式設計師大腕,哪一個不是50歲上下的。 當然程式設計師是個很燒腦的工作,對自身技術要求很高,如果你到了中年而技術水平還停留在初級階段,那你被淘汰也沒什麼抱怨的

2019電商新思路跨境電商助你快人一步 LL-YMX1

註意 倉儲 可能 自己 管理 本地化 會有 屬於 國際 不論是做國內的電商平臺還是跨境電商,每個人的心裏都只有一個目標,那就是開個店鋪安心賺錢,而且每個平臺都限制每人只能開一個店鋪,但是方法很重要,在2019年店群模式成為了熱門,隨著店群模式的興起,加上部分電商平臺的門檻較

Java 12 發布了決定Java未來的三大主要項目

服務 join 表達 rtt 發生 ted 曲線 形式 機制 Java 12 發布了,沒有引起很大的討論。對於 Java 這樣一門成熟的語言來說,每一次更新似乎都無法滿足龐大的 Java 開發群體與生態圈。再加上 Oracle 對 Java 耐人尋味的態度,Java 的

未來屬於你你的屁股決定你的未來?一張圖點醒了大部分人

strong info 成長 成功 基本上 想要 嚴重 所有 加速 未來是屬於你的!——米格   職場中,你是屬於是幫著幹、跟著幹的,還是領著幹的,或者對著幹的?不管現在你處在 哪一位置,它都將與你未來的事業息息相關。   當看到這張圖,請先捫心自問一下!   圖中哪一個是

五年老Android決定轉後端開發了

今天給大家分享一些移動端(Android)開發學習後端開發(Java Web)的一些事兒,不知道從什麼時候開始身邊的同事都開始陸陸續續的在朋友圈發一些後端的文章如:Nginx、Docker、k8s類的知識,後來才發現大家都在學習一些後端的開發工作,可能是感覺移動端技術有些膩了了吧,需要有些突破了! 甚至還有個

超長視覺化指南帶你理清K8S部署的故障排查思路讓bug無處遁形

本文將幫助你釐清在Kubernetes中除錯 deployment的思路。下圖是完整的故障排查思路,如果你想獲得更清晰的圖片,請在公眾號後臺(RancherLabs)回覆“troubleshooting”。 當你希望在Kubernetes中部署一個應用程式,你通常需要定義三個元件: Deployme

python+unittest框架整理(一點點學習前輩們的封裝思路一點點成長。。。)

spa star 世界 ner bytes odi splay 好玩 etime 預期框架整理目標: 1.單個用例維護在單個.py文件中可單個執行,也可批量生成組件批量執行 2.對定位參數,定位方法,業務功能腳本,用例腳本,用例批量執行腳本,常用常量進行分層獨立,各自維護在

web掃碼登錄怎麽實現思路?

平臺 type qrcode 跳轉 目前 segment uname time 數據 步驟 WEB平臺 手機 第1步 生成二維碼 第2步 (ajax監控後臺) 掃碼 第3步 (a

Codeforces 884C.Bertown Subway ----判環思路

str eal 問題 ctu val inpu ger arr sport The construction of subway in Bertown is almost finished! The President of Berland will visit

HDFS設計思路HDFS使用查看集群狀態HDFSHDFS上傳文件HDFS下載文件yarn web管理界面信息查看運行一個mapreduce程序mapreduce的demo

b2c 數據系統 set 打包 value map mode format drive 26 集群使用初步 HDFS的設計思路 l 設計思想 分而治之:將大文件、大批量文件,分布式存放在大量服務器上,以便於采取分而治之的方式對海量數據進行運算分析; l 在大數據系

“鏈”上雄安雄安新區城市發展新思路未來區塊鏈第一城?

部門 架構 發展 sin 高效 支持 廣泛 距離 建設 日前,歐洲金融工具市場指令(MiFiD II)立法設計師兼歐洲議會會員Kay Swinburne在接受外媒Business Insider采訪時表示,如果倫敦金融城還想繼續成為歐洲金融科技中心的話,就應該擁抱區塊鏈技術

求一個整數數組中和最大的連續子數組例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大連續子數組是[4, 10, -3, 4](需寫明思路並編程實現)

class col code pan IT [] 例如 exit arr $arr = [ 1 , 2 , -4 , 4 , 10 , -23 , 4 , -5 , 1]; $max_sum = 0; $sum=0; $new = []; $i =

C語言實現聊天工具鐘的抖動窗口功能代碼很簡單思路也很簡單

.com 微信公眾號 eight 後來 這就是 get -i 答案 ros 想必都知道QQ聊天對話框中,有一個抖動個功能,相信大家也都用過,但能否用C語言做出來呢?答案肯定是可以的! 至於如何,今天就為大家分享出來!這就是今天的主題。 制作流程:簡直簡單的小編都不好意思說

(如數據結構算法題)編程不是難在處理問題的思路而在用代碼將思路描述出來。

思維 正常 一次 cte -- 習慣 加減 想要 not 初學編程總覺得好簡單,不就是加減乘除,或者什麽,思路太簡單了,就這樣這樣做就可以了,代碼就不用寫了,反正這麽簡單。 其實難就難在,如何用代碼這種語言將你的思路書寫下來。 寫代碼會受到很多的限制,你想要這樣幹,但你要如

數學好不好直接決定了程式設計師的上限

數學對於程式設計的重要性越來越強,數學是科學的基礎,很多研究都依賴數學,數學更像是一個基石,走向更高層面的基石,如同要成為一個物理學家首先是一個數學家,要學好程式設計,必須數學要懂,在這有兩個重要的字眼學好,要做程式設計數學不好也是可以做的,大部分的程式設計的場景對於高深數學應用相對比較少,所以很多

採用maven的聚合專案拆分、整合boot cloud時錯誤的整合思路如何解決

idea下,如何進行springboot的maven聚合依賴。 首先,把我的專案結構圖大致說明一下: 專案檔案結構大致圖: 對應的pom資訊如下,從父級逐級顯示,以下只是備註自己的關鍵程式碼 jt-parent <modules> <modul