从头认识java-9.9 set

页面导航:首页 > 软件编程 > Java编程 > 从头认识java-9.9 set

从头认识java-9.9 set

来源: 作者: 时间:2016-01-21 09:39 【

这一章节我们来讨论一些set。由于set里面的对象的不重复性,因此决定了set里面搜索查询的函数用的非常频繁,因此,我们一般使用hashset,因为它对于搜索进行了特殊的优化处理。1 H

这一章节我们来讨论一些set。

由于set里面的对象的不重复性,因此决定了set里面搜索查询的函数用的非常频繁,因此,我们一般使用hashset,因为它对于搜索进行了特殊的优化处理。

1.HashSet

由于HashSet对对象进行hash操作,因为它的搜索是根据hash码来操作的,因此, 它的输出是无序的。

 

package com.ray.ch09;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;

public class Test {

	public static void main(String[] args) {
		HashSet set = new HashSet();
		Random random = new Random();
		for (int i = 0; i < 10000; i++) {
			set.add(random.nextInt(30));
		}
		System.out.println(Arrays.toString(set.toArray()));
	}
}

输出:

 

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 16, 19, 18, 21, 20, 23, 22, 25, 24, 27, 26, 29, 28]

 

2.TreeSet

如果你需要结果是排序的,那么就应该使用TreeSet,它把对象放置在红黑树上面。

 

package com.ray.ch09;

import java.util.Arrays;
import java.util.Random;
import java.util.TreeSet;

public class Test {

	public static void main(String[] args) {
		TreeSet set = new TreeSet();
		Random random = new Random();
		for (int i = 0; i < 10000; i++) {
			set.add(random.nextInt(30));
		}
		System.out.println(Arrays.toString(set.toArray()));
	}
}

输出:

 

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]

 

3.set 的不重复性演示

 

package com.ray.ch09;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;

public class Test {

	public static void main(String[] args) {
		HashSet set = new HashSet();
		for (int i = 0; i < 10; i++) {
			set.add(i);
		}
		System.out.println(Arrays.toString(set.toArray()));
		set.add(12);
		System.out.println(Arrays.toString(set.toArray()));
		ArrayList list = new ArrayList();
		list.add(1);
		set.addAll(list);
		System.out.println(Arrays.toString(set.toArray()));
	}
}

输出:

 

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12]

 

4.contains方法

由于set的不可重复性决定了contains方法是set里面使用的最频繁的方法。

 

package com.ray.ch09;

import java.util.HashSet;

public class Test {

	public static void main(String[] args) {
		HashSet set = new HashSet();
		for (int i = 0; i < 10; i++) {
			set.add(i);
		}
		System.out.println(set.contains(2));
		System.out.println(set.contains(12));
	}
}

 

 

输出:

true
false

 

5.有些时候我们需要使用排序的不重复的人员名单时,可以优先考虑TreeSet,请注意代码里面的注释。

 

package com.ray.ch09;

import java.util.Arrays;
import java.util.TreeSet;

public class Test {

	public static void main(String[] args) {
		TreeSet treeSet = new TreeSet(
				String.CASE_INSENSITIVE_ORDER);// 主要是这里设置了排序的属性,只是对字符串有效
		String text = Aabbye,Caesar,abbe,Bairn,cais,Dagmar,baby;
		String[] names = text.split(,);
		for (int i = 0; i < names.length; i++) {
			treeSet.add(names[i]);
		}
		System.out.println(Arrays.toString(treeSet.toArray()));
	}
}

输出:

 

[Aabbye, abbe, baby, Bairn, Caesar, cais, Dagmar]

 

总结:这一章节主要讲述了HashSet以及TreeSet的使用和注意点。

 

 


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<