Java:集合容器(set)

集合就是数学中的集合的概念:所有的元素都具有唯一性,元素在其中没有顺序。

package test;

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

class Value
{
	private int i;
	public void set(int i) {this.i = i;}
	public int get() {return i;}
	public String toString() {return ""+i;}		//当直接调用对象时,会默认调用toString,如果自己没定义,
												//默认输出为【test.Value@1c4af82c】
}
public class test {
	
	public static void main(String[] args) {
		Value v = new Value();
		v.set(10);
		System.out.println(v);
		
		ArrayList<String> a = new ArrayList<String>();
		a.add("first");
		a.add("second");
		a.add("first");
		for(String s : a)
		{
			System.out.println(s);
		}
		System.out.println("-------");
		HashSet<String> s = new HashSet<String>();	
		s.add("first");						//集合容器等同于数学上的集合:没有重复的元素,无所谓顺序	
		s.add("second");					//无法用下标索引的方式来获取集合中的元素,也无法用get()函数获得
		s.add("first");						//也无法对集合进行排序,集合是无序的,里面存入的数据的位置是无序的
		for(String k : s)
		{
			System.out.println(k);
		}
		System.out.println(a);						//输出对象时,默认调用tostring
		System.out.println(s);

结果:

10
first
second
first
-------
first
second
[first, second, first]
[first, second]

集合容器(HashSet)相对于顺序容器(ArrayList)来说,最重要的特点是集合不能存储相同的元素,可以利用这个特性判断一个元素是否存在,有序无序并不是关键,可不可以使用get方法也就不重要了。
而对于ArrayList这类容器来说,get方法就很重要了,因为获取元素用于计算是这类容器最主要和最重要的操作。所以从功能设计上来说,是有必要对两种类型的容器做接口差异化处理的。

容器中只能存入对象类型,无法存入值类型(会报错),如果要用值类型(int),可以使用对应的对象类型

原始类型           封装类   
  boolean              Boolean   
  char                 Character   
  byte                 Byte   
  short                Short   
  int                  Integer   
  long                 Long   
  float                Float   
  double               Double
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值