java中的Set接口

java中的Set接口

set是Collection的子接口;

set接口容器类中的元素是没有顺序的,且不能重复;

set容器类有HashSet,TreeSet等。

 TestSet1.java

import java.util.*;

//Set方法举例1
public class TestSet1 {
	public static void main(String[] args) {
		Set s = new HashSet();
		s.add("hello");
		s.add("world");
		s.add(new Name("f1","l1"));
		s.add(new Integer(100));
		s.add(new Name("f1","l1"));//相同的元素不会被加入
		s.add("hello");
		
		System.out.println(s);//[world, 100, hello, f1 l1]
		
		
	}
}

class Name /*implements Comparable*/ {
    private String firstName,lastName;
    public Name(String firstName, String lastName) {
        this.firstName = firstName; this.lastName = lastName;
    }
    public String getFirstName() {  return firstName;   }
    public String getLastName() {   return lastName;   }
    public String toString() {  return firstName + " " + lastName;  }
    
	/**
	*	重写equals方法
	*/
    public boolean equals(Object obj) {
	    if (obj instanceof Name) {
	        Name name = (Name) obj;
	        return (firstName.equals(name.firstName))
	            && (lastName.equals(name.lastName));
	    }
	    return super.equals(obj);
	}
	/**
	*	重写hashCode方法
	*/
	public int hashCode() {
		    return firstName.hashCode();
	}
		
}
F:\java>javac TestSet1.java
注: TestSet1.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java TestSet1
[world, 100, hello, f1 l1]

F:\java>

 TestSet2.java

import java.util.*;

//Set方法举例1
public class TestSet2 {
	public static void main(String[] args) {
		Set s1 = new HashSet();
		Set s2 = new HashSet();
		s1.add("a");
		s1.add("b");
		s1.add("c");
		
		s2.add("d");
		s2.add("a");
		s2.add("b");
		
		//Set和List都具有Constructor(Collection c)
		//构造方法用于初始化容器类
		Set sn = new HashSet(s1);//赋值
		sn.retainAll(s2);//求交集
		System.out.println(sn);//[a, b]
		
		Set su = new HashSet(s1);//赋值
		su.addAll(s2);//求交集		
		System.out.println(su);//[a, b, c, d]
		
	}
}
F:\java>javac TestSet2.java
注: TestSet2.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

F:\java>java TestSet2
[a, b]
[a, b, c, d]

F:\java>
扫描二维码关注公众号,回复: 345865 查看本文章

猜你喜欢

转载自mfcfine.iteye.com/blog/2384605
今日推荐