亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么java同時支持數組和集合?

為什么java同時支持數組和集合?

慕虎7371278 2022-09-07 16:32:26
在Python中,我使用列表來存儲集合,而在Java中,有多個選擇。如果java只支持集合,會有問題嗎?
查看完整描述

3 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

Java中的數組和集合有很多區別,有些是:

  1. 根據我們的要求,集合在本質上是可增長的。我們可以增加或減少大小。雖然數組的大小是固定的,但一旦我們創建了一個數組,我們就不能根據我們的要求增加或減少。

  2. 關于內存:更推薦集合,而在性能方面:更建議使用數組。

  3. 數組只能保存同構元素,但集合可以同時保存同構和異構元素。

  4. 數組沒有現成的方法,但集合具有現成的數據結構和方法。

  5. 數組可以同時保存基元和包裝器對象,但集合只能包含對象。

以下是java中的一些集合:

import java.util.Map;

import java.util.Set;

import java.util.SortedSet;

import java.util.TreeSet;


import java.util.ArrayList;

import java.util.Collection;

import java.util.HashMap;

import java.util.HashSet;

import java.util.Iterator;

import java.util.LinkedHashSet;

import java.util.LinkedList;

import java.util.List;


public class CollectionExamples {

   public static void main(String[] args) {


      List LinkedList = new LinkedList();

      LinkedList.add("Linked List Position 1");

      LinkedList.add("Linked List Position 2");

      LinkedList.add("Linked List Position 3");

      LinkedList.add("Linked List Position 4");

      displayAll(LinkedList);


      List arrayList = new ArrayList();

      arrayList.add("Array List Position 1");

      arrayList.add("Array List Position 2");

      arrayList.add("Array List Position 3");

      arrayList.add("Array List Position 4");

      displayAll(arrayList);


      Set hashSet = new HashSet();

      hashSet.add("Hashset Position 1");

      hashSet.add("Hashset Position 2");

      hashSet.add("Hashset Position 3");

      hashSet.add("Hashset Position 4");

      displayAll(hashSet);


      SortedSet treeSet = new TreeSet();

      treeSet.add("TreeSet Position 1");

      treeSet.add("TreeSet Position 2");

      treeSet.add("TreeSet Position 3");

      treeSet.add("TreeSet Position 4");

      displayAll(treeSet);


      LinkedHashSet linkedHashSet = new LinkedHashSet();

      linkedHashSet.add("linkedHashSet Position 1");

      linkedHashSet.add("linkedHashSet Position 2");

      linkedHashSet.add("linkedHashSet Position 3");

      linkedHashSet.add("linkedHashSet Position 4");

      displayAll(linkedHashSet);


      Map hashMap = new HashMap();

      hashMap.put("hashMapKey1", "hashMapValue1");

      hashMap.put("hashMapKey2", "hashMapValue2");

      hashMap.put("hashMapKey3", "hashMapValue3");

      hashMap.put("hashMapKey4", "hashMapValue4");

      displayAll(hashMap.keySet());

      displayAll(hashMap.values());


   }

   static void displayAll(Collection col) {

      Iterator itr = col.iterator();

      while (itr.hasNext()) {

         String str = (String) itr.next();

         System.out.println(str);

      }

      System.out.println();

   }

}


查看完整回答
反對 回復 2022-09-07
?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

數組是固定大小的數據類型,JVM 支持這些數據類型,并提供隨機訪問等功能。

Collection與數組不同。還有像s這樣的集合,它們具有不同的屬性。通常,如果要擁有動態可增長列表,請使用。SetArrayList


查看完整回答
反對 回復 2022-09-07
?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

集合提供了數組所做的一切,但更多,但有一個例外。性能

看看 ArrayList,它是數組的集合版本。

ArrayList 僅支持對象,不支持基元。如果要為每個值創建一個 ArrayList 的 ints,則必須將其自動裝箱到 Integer 中,這在性能方面是一個很大的開銷。

http://img1.sycdn.imooc.com//631857490001521b06320137.jpg

如果您想要的只是一個簡單的數據結構來存儲一些東西,那么您就不需要在性能上受到打擊。但是,如果您需要做一些額外的事情,例如動態調整大小的數組或集合,java可以通過為您提供集合來支持您。


查看完整回答
反對 回復 2022-09-07
  • 3 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號