JAVA提高教程(1)-认识Set集合

集合的基本介绍,全在代码里了。不同的实现,细节不同,使用时稍微注意点就行了 。幸好我们常用的就那么几个。

package collection.lession1;

import java.util.EnumSet;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

/**
* 老紫竹JAVA提高教程(1)-认识Set集合<br>
* Set不允许重复数据<br>
* Set最多允许一个null数据(有些实现不允许null)<br>
*
* @author 老紫竹 JAVA世纪网(java2000.net)
*
*/
public class Lession1 {

 public static void main(String[] args) {
  // 基于Hash的集合,其中的hashCode方法很重要
  Set hashSet = new HashSet();

  // 提供按照一定规则排序的集合
  Set treeSet = new TreeSet();

  // 按照插入顺序进行使用的集合,双向链表
  Set linkedHashSet = new LinkedHashSet();

  // 针对enum使用的集合
  Set enumSet = EnumSet.noneOf(MyEnum.class);

  // 集合的基本操作
  // 我们用HashSet做测试
  Set<Object> set = new HashSet<Object>();
  ;
  Object obj = new Object();

  // 如果 set 中尚未存在指定的元素,则添加此元素
  // 如何判断是否存在,各个实现并不相同
  boolean ok = set.add(obj);

  Set<Object> set2 = new HashSet<Object>();
  // 如果 set 中没有指定 collection 中的所有元素,则将其添加到此 set 中
  // 实际上是合集操作。
  ok = set.addAll(set2);

  // 移除此 set 中的所有元素
  // 就是清空了,啥都不要了
  set.clear();

  // 判断集合里是否包含这个对象
  // 判断方法,各个实现并不相同
  boolean found = set.contains(obj);

  // 判断一个集合是否包含了另一个集合或者至少是不少
  found = set.containsAll(set2);

  // 判断一个集合是否为空
  // 其实通过集合的长度也能判断出来
  boolean empty = set.isEmpty();

  // 迭代器,提供统一的访问集合的接口
  Iterator<Object> it = set.iterator();

  // 从集合中删除某个数据
  // 也就是被开除了
  ok = set.remove(obj);

  // 从集合中删除一组数据
  // 也就是集体开除了
  ok = set.removeAll(set2);

  // 看看集合里有多少东西了
  int size = set.size();

  // 将集合转化为数组
  Object[] objs = set.toArray();

  // 将集合转化为指定格式的数组
  // 比如集合里保存的都是String
  String[] objs2 = (String[]) set.toArray(new String[0]);
 }
}

enum MyEnum {

}

时间: 2024-08-01 16:21:27

JAVA提高教程(1)-认识Set集合的相关文章

JAVA提高教程(5)-认识Set集合之EnumSet

这个类是1.5开始有的,目前个人使用量几乎为零,因为我很少使用枚举,呵呵.我这 里也是简单介绍一下而已.其使用方式和普通的Set没有区别,只是构造方法有一些特殊 的而已. 1.package collection.lession5; 2. 3.import java.util.Arrays; 4.import java.util.EnumSet; 5.import java.util.Set; 6. 7./** 8. * 老紫竹JAVA提高教程(5)-认识Set集合之EnumSet.<br>

JAVA提高教程(4)-认识Set集合之TreeSet

TreeSet 是用来进行集合排序的,请注意他和LinkedHashSet的区别. TreeSet是按照一定的规则,将加入到集合里面的数据进行排序,而LinkedHashSet是 严格按照你放入集合的顺序进行使用. 先看源代码 package collection.lession4; import java.util.Arrays; import java.util.Comparator; import java.util.Set; import java.util.TreeSet; /** *

JAVA提高教程(3)-认识Set集合之LinkedHashSet

有序的集合,就是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> * Link

JAVA提高教程(2)-认识Set集合之HashSet

集合在Java里面的作用非凡,我们常用的有Set,List和Map三种,我们先熟悉一下Set ,特别是HashSet的使用 package collection.lession2; import java.util.HashSet; import java.util.Set; /** * 老紫竹JAVA提高教程(2)-认识Set集合之HashSet.<br> * Set用来保存不允许重复的数据.可以是任何对象类型.<br> * JDK5以后,主类型可以通过autobox 放入Set

JAVA提高教程(11)-认识Map

Map可以为某些数据提供快速查找功能,通过关键字(key)可以快速的得到对应的 Value,而不用像List那样需要大范围的遍历或特别的算法. 1. 源代码 1.import java.util.ArrayList; 2.import java.util.HashMap; 3.import java.util.HashSet; 4.import java.util.Iterator; 5.import java.util.List; 6.import java.util.Map; 7.impor

JAVA提高教程(8)-认识List列表之Vector

Vector和ArrayList的最大区别就是Vector的主要集合方法是线程同步的. 1.package collection.lession8; 2. 3.import java.util.Arrays; 4.import java.util.Collection; 5.import java.util.Enumeration; 6.import java.util.Iterator; 7.import java.util.List; 8.import java.util.Vector; 9

JAVA提高教程(6)-认识List列表

列表是很常用的数据结构,感觉比Map和Set用的频率要高一些吧,因为我经常用其返 回数据库的操作结果集 package collection.lession6; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.Stack; import

JAVA提高教程(14)-认识Map之LinkedHashMap

Java基础及提高教程目录 Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序.此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表.此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序).注意,如果在映射中重新插入 键,则插入顺序不受影响.(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用时会将键 k 重新插入到映射 m 中.) 此实现可以让客户避免未指定的.由 HashMap(及

JAVA提高教程(13)-认识Map之Hashtable

这个类,在使用上和HashMap的区别不大,其方法都是同步的(Synchronized). 1.package collection.lession13; 2. 3.import java.util.Hashtable; 4. 5./** 6. * 老紫竹JAVA提高教程(13)-认识Map之Hashtable<br> 7. * 这个类继承自一个已经过期不推荐使用的Dictionary类<br> 8. * 目前均推荐实现Map接口<br> 9. * 10. * 11.