日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

javase基础复习攻略《七》

發(fā)布時(shí)間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javase基础复习攻略《七》 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  容器是什么?通俗的講容器指可以裝其它東西的器皿,前面我們提到的數(shù)組便是容器的一種,容器的概念在JAVA中便可以理解為用來(lái)存儲(chǔ)其它對(duì)象的器皿。本篇就讓我們一起來(lái)認(rèn)識(shí)一下JAVA為我們提供的容器類(lèi)。

 1、容器API:

  J2SDK提供的容器API位于java.util包內(nèi),容器API的類(lèi)圖結(jié)構(gòu)如下圖所示:

   

 2、JAVA容器的組成:

  Collection接口——定義了存取一組對(duì)象的方法,其子接口Set和List分別定義了存取方式。Set中的數(shù)據(jù)對(duì)象沒(méi)有順序但不可以重復(fù);List中的對(duì)象有順序且可以重復(fù),List又被細(xì)分為L(zhǎng)inkedList和ArrayList,從名字上應(yīng)該可以看出它的不同,LinkedList以鏈表的方式來(lái)存儲(chǔ)數(shù)據(jù),ArrayList則以數(shù)組的方式來(lái)存儲(chǔ)數(shù)據(jù)。說(shuō)完了Collection接口,下面我們看一下Map接口,Set和List都是單值存儲(chǔ),而Map則提供的是一種鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù),鍵和值之間一一映射。

 3、Collection接口定義的方法:

  int size():容器中對(duì)象的數(shù)目

  boolean isEmpty():是否為空

  void clear():清空

  boolean contains(Object element):是不是包含element對(duì)象

  boolean add(Object element):添加element的對(duì)象

  boolean remove(Object element):移除element對(duì)象

  Iterator iterator():返回一個(gè)Iterator對(duì)象,用于遍歷容器中的對(duì)象

  bollean containsAll(Collection c):是否包含c容器中的所有對(duì)象

  boolean addAll(Collection c):把c容器中的所有對(duì)象添加到容器中

  boolean removeAll(Collection c):從容器中移除C容器中存在的所有對(duì)象

  boolean retainAll(Collection c):求當(dāng)前的集合類(lèi)與C容器的交集

  Object[] toArray():把容器中的所有對(duì)象轉(zhuǎn)換到對(duì)應(yīng)的數(shù)組中

 4、Iterator接口:

  所有實(shí)現(xiàn)了Collection接口的容器都有一個(gè)iterator方法,用于返回一個(gè)實(shí)現(xiàn)了Itertaor的對(duì)象。Iterator對(duì)象稱(chēng)為迭代器,用于方便的實(shí)現(xiàn)對(duì)容器中元素的遍歷。

 5、Iterator接口的方法:

  boolean hasNext():判斷游標(biāo)右邊是否有元素

  Object next():返回游標(biāo)右邊的元素,并將游標(biāo)移動(dòng)到下一個(gè)位置。

  void remove():刪除游標(biāo)左邊的元素,并將游標(biāo)移動(dòng)到下一個(gè)位置,該方法一次只能執(zhí)行一次

public class Iter {/*** @param Interator接口*/public static void main(String[] args) {Collection coll = new HashSet();coll.add(new Integer(1));coll.add(new Integer(2));coll.add(new Integer(3));Iterator it = coll.iterator();while(it.hasNext()){//判斷下一位置是否為空Integer i = (Integer) it.next();if(!i.equals(new Integer(1))){System.out.println(i);}else{it.remove();//移除 }}} }

 6、增強(qiáng)的for循環(huán):

  JAVA SDK1.5新增的一個(gè)方法,對(duì)于遍歷array或Collection的時(shí)候相當(dāng)簡(jiǎn)便。缺陷在于對(duì)于數(shù)組元素不能方便的訪問(wèn)下標(biāo)值;對(duì)于集合與Iterator相比不能方便的刪除容器中的元素。結(jié)論:除了簡(jiǎn)單的遍歷和讀取其中的內(nèi)容外,不建議使用增強(qiáng)的for循環(huán)。使用方法:

public class test {/*** @param 增強(qiáng)for循環(huán)*/public static void main(String[] args) {Collection<String> coll = new ArrayList<String>();coll.add(String.valueOf("a"));coll.add(String.valueOf("b"));coll.add(String.valueOf("c"));for(String str : coll){System.out.println(str);}} }

 7、Set接口:

  Set接口是Collection接口的子接口,Set接口沒(méi)有提供額外的方法,但實(shí)現(xiàn)了Set接口的容器類(lèi)中的元素是沒(méi)有順序,并且不可以重復(fù)的。Set容器類(lèi)似于數(shù)學(xué)中集合的概念,J2SDK API中所提供的Set容器類(lèi)有HashSet和TreeSet等。

public class test {/*** @param Set接口*/public static void main(String[] args) {Collection coll = new HashSet();coll.add("hello");coll.add("word");coll.add(new Integer(100));System.out.println(coll);} }

 8、List接口:

  List接口是Collection接口的子接口,List容器的中的元素沒(méi)有順序,可以重復(fù)。List容器中的元素都對(duì)應(yīng)一個(gè)整型序號(hào)記載著其在容器中的位置。J2SDK API中所提供的List容器類(lèi)有ArrayList和LinkList等。

 9、常用方法:

  void sort(List):對(duì)List中的元素進(jìn)行排序

  void shuffle(List):對(duì)List中的元素進(jìn)行隨機(jī)排序

  void reverse(List):對(duì)List中的元素進(jìn)行逆襲排序

  void fill(List, Object):用一個(gè)特定的對(duì)象重寫(xiě)List容器

  void copy(List dest, List src):將src容器中的元素拷貝到dest容器中

  int binarySearch(List, Object):對(duì)順序的List容器,采用折半查找法尋找特定的對(duì)象

public class test {/*** @param List接口*/public static void main(String[] args) {List l1 = new LinkedList();List l2 = new LinkedList();for(int i=0; i<5; i++){l1.add(i+1);}for(int i=0; i<5; i++){l1.add('a');}System.out.println(l1);//原始順序Collections.shuffle(l1);//隨機(jī)排序 System.out.println(l1);Collections.reverse(l1);//倒序排序 System.out.println(l1);Collections.sort(l1);//排序 System.out.println(l1);System.out.println(Collections.binarySearch(l1, 3));//折半查找Collections.copy(l2, l1);//拷貝 System.out.println(l2);} }

 10、Comparable接口:

  List容器中的元素可以進(jìn)行排序,那么它是根據(jù)什么進(jìn)行的排序呢?所有可以進(jìn)行排序的類(lèi)都實(shí)現(xiàn)了java.lang.Comparable接口,Comparable接口只有一個(gè)方法:public int CompareTo(Object obj);方法。返回值:0代表this==obj;正數(shù)代表this>obj;負(fù)數(shù)代表this<obj。實(shí)現(xiàn)了Comparable接口的類(lèi)通過(guò)實(shí)現(xiàn)CompareTo方法從而定義該類(lèi)對(duì)象的排序方法。對(duì)姓名排序的例子:

public class Name implements Comparable{/*** @param Comparable接口*/private String lastName;private String fastName;public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}public String getFastName() {return fastName;}public void setFastName(String fastName) {this.fastName = fastName;}public int compareTo(Object arg0) {Name name = (Name)arg0; int lastCmp = lastName.compareTo(name.lastName);return (lastCmp!=0 ? lastCmp : fastName.compareTo(name.fastName));} }

 11、Map接口:

  實(shí)現(xiàn)了Map接口的類(lèi)用來(lái)存儲(chǔ)鍵--值對(duì),Map中存儲(chǔ)的值通過(guò)鍵來(lái)標(biāo)識(shí),故而Map中的鍵不能重復(fù)。

 12、Map常用方法:

  Object put(Object key, Object value):添加元素

  Object get(Object key):取出鍵值key對(duì)應(yīng)的value值

  Object remove(Object key):移除鍵值key對(duì)應(yīng)的value值

  boolean containsKey(Object key):判斷Map容器中是否存在鍵值key

  boolean containsValue(Object value):判斷Map容器中是否存在value值

  int size():返回Map容器的長(zhǎng)度

  boolean isEmpty():判斷Map容器是否為空

  void clear():清空Map容器

  對(duì)于JAVA容器這一章就總結(jié)到這里,對(duì)于自動(dòng)打包和解包、泛型,由于文字描述的局限,就不再這里討論了,如果你有好的理解,還望留言討論。

?

  

轉(zhuǎn)載于:https://www.cnblogs.com/AndroidJotting/p/4337275.html

總結(jié)

以上是生活随笔為你收集整理的javase基础复习攻略《七》的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。