Java集合之Set

package set;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import org.junit.Test;

public class JTest {

	@Test
	public void test1() {//定义一个单元测试方法
		//将4个城市保存到Set集合容器中
		//第1步:创建并实例化一个HashSet集合容器
		//HashSet集合容器的特点:
		//(1)在HashSet中保存的元素是无序的
		//(2)在HashSet中保存的元素是唯一的(也就是说:HashSet中不会存在相同的元素)
		//(3)HashSet底层原理基于Hash算法,元素没有索引,所以遍历HashSet需要使用[迭代器]Iterator
		Set<String> cities = new HashSet<String>();
		//第2步:通过add方法向集合中添加元素
		cities.add("北京");
		cities.add("上海");
		cities.add("杭州");
		cities.add("深圳");
		//第3步:通过增强型for循环遍历HashSet集合容器获取集合容器中保存的所有元素
//		for(String s : cities) {
//			System.out.println(s);
//		}
		//第3步:通过迭代器Iterator遍历HashSet集合容器获取集合容器中保存的所有元素
		Iterator<String> itr = cities.iterator();//获取HashSet集合对象中的迭代器
		while(itr.hasNext()) {//hashNext()判断是否还存在元素
			//System.out.println(itr.next());//next()获取元素
			String c = itr.next();//获取元素
			if("深圳".equals(c)) {
				itr.remove();//删除
			}
		}
		
		//cities.clear();//清除HashSet集合中所有的元素
		//第3步:通过增强型for循环遍历HashSet集合容器获取集合容器中保存的所有元素
		for(String s : cities) {
			System.out.println(s);
		}
	}
	
	@Test
	public void test2() {
		Set<String> num = new HashSet<String>();
		num.add("one");
		num.add("two");
		num.add("three");
		num.add("four");
		num.add("four");
		for(String s : num) {
			System.out.println(s);
		}
	}
	
	@Test
	public void test3() {
		//定义HashSet集合容器,存字符串
		Set<String> strs = new HashSet<String>();
		
		String s1 = new String("123");
		String s2 = new String("123");
		
		//将2个字符串对象保存到集合容器中
		strs.add(s1);
		strs.add(s2);
		
		//循环遍历输出
		for(String s : strs) {
			System.out.println(s);
		}
	}
	
	@Test
	public void test4() {
		//LinkedHashSet中存储的数据是有序且唯一的
		Set<String> cities = new LinkedHashSet<String>();
		cities.add("北京");
		cities.add("上海");
		cities.add("杭州");
		cities.add("深圳");
		
		for(String s : cities) {
			System.out.println(s);
		}
	}
	

	@Test
	public void test5() {
		//LinkedHashSet中存储的数据是有序且唯一的
		List<Integer> height = new ArrayList<Integer>();
		height.add(180);
		height.add(169);
		height.add(185);
		height.add(157);
		height.add(169);
		
//		for(String s : height) {
//			System.out.println(s);
//		}
		System.out.println("*******排序前********");
		System.out.println(height);
		
		System.out.println("*******排序后********");
		Collections.sort(height);
		System.out.println(height);
		System.out.println("最大值:"+Collections.max(height));
		System.out.println("最大值:"+Collections.min(height));
	}
}

package set;
//给对象进行排序
public class User implements Comparable<User>{

	private String name;
	private int age;
	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	
	public User(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	
	//重写toString方法
	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age + "]";
	}
	
	//重写ComparaTo
	@Override
	public int compareTo(User o) {
		if(this.age>o.age) {
			return 1;
		}else if(this.age<o.age) {
			return -1;
		}else {
			return 0;
		}
		
	}
	
}

package set;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TestUser {

	public static void main(String[] args) {
		List<User> list = new ArrayList<User>();
		list.add(new User("张三", 18));
		list.add(new User("李四", 22));
		list.add(new User("王五", 48));
		list.add(new User("赵六", 15));
		//给对象进行排序
		Collections.sort(list);
		//循环输出
		for(User l : list) {
		System.out.println(l);
		}
		
		System.out.println("年龄最大的是:"+Collections.max(list));
		System.out.println("年龄最小的是:"+Collections.min(list));
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值