程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JAVA提高教程(3)-認識Set集合之LinkedHashSet

JAVA提高教程(3)-認識Set集合之LinkedHashSet

編輯:關於JAVA

有序的集合,就是LinkedList,內部通過雙向鏈表實現,LinkedHashMap為基礎。

package collection.lession3;

import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;

/**
* 老紫竹JAVA提高教程(3)-認識Set集合之LinkedHashSet。<br>
* <br>
* LinkedHashSet與HashSet的區別就是數據嚴格按照插入的順序存放。<br>
* 刪除之後會去掉那個位置,新增的數據將在集合的末尾。<br>
* HashSet 內部使用HashMap實現<br>
* 而LinkedHashSet內部使用LinkedHashMap實現。
*
* @author 老紫竹 JAVA世紀網(java2000.net)
*
*/
public class Lession3 {
 public static void main(String[] args) {
  test(new HashSet<Integer>());
  test(new LinkedHashSet<Integer>());
 }

 public static void test(Set<Integer> set) {
  System.out.println(set.getClass().getName());
  // 增加10個數據
  for (int i = 100; i <= 110; i++) {
   set.add(i);
  }
  // 看看裡面數據的情況
  showSet(set);

  // 刪除一個數據
  set.remove(101);
  // 看看刪除後的情況
  showSet(set);

  // 增加三個數據,看結果
  set.add(98);
  set.add(101);
  set.add(118);
  showSet(set);
 }

 /**
  * 顯示Set裡面的數據。
  *
  * @param set
  */
 private static void showSet(Set<Integer> set) {
  System.out.println(Arrays.toString(set.toArray(new Integer[0])));
 }
}

測試:

嘗試按照自己的意願,控制LinkedHashSet裡面數據的順序,比如刪除第一個,再加入 ,則其出現在了末尾了。這個很像排隊買票,一旦你中途退出了,就只能重新排隊。是不 允許加塞的。

總結:

當我們處理集合,有想掌握其順序的時候,可以考慮這個,當然List也是很好的選擇 ,不過Hash算法,在查找數據的時候,比List性能要高的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved