【Java】集合基础

public class CollectionDemo {
	private static final long LEVEL = 20150701;//本码讲版本
	//======================集合基础=================
	@Test
	public void testCollection() {
		/*
		 * add size isEmpty
		 */
		Collection c1 = new ArrayList();
		Collection<String> c2 = new HashSet<String>();
		System.out.println("添加元素成功否:"+c1.add("str1"));
		System.out.println("当前集合中元素数量为:" + c1.size() + "   元素为:" + c1);
		System.out.println("当前集合" + c1.isEmpty() + "空");
		c1.clear();// 清除所有元素
		System.out.println("集合已清空!" + c1.size());
		System.out.println("当前集合" + c1.isEmpty() + "空");
		/*
		 *  集合中放的是句柄,其符合别名规则
		 */
		Point p1 = new Point(1, 2);
		c1.add(p1);
		p1.setX(4);
		System.out.println("随保存的对象改变: " + c1);
		/*
		 *  contains方法
		 */
		Point p3 = new Point(4, 2);
		System.out.println("contains方法使用元素的equals比较:" + c1.contains(p3));
		c1.clear();
		/*
		 * addAll()方法
		 */
		c1.add("java");
		c1.add("vb");
		c1.add(".net");
		
		c2.add("java");
		c2.add("php");
		c2.add("objective-c");
		//如添加后有变动,将返回true
		System.out.println("addAll方法: " + c1.addAll(c2)+c1);
		c1.clear();
		c2.clear();
		/*
		 *  containsAll方法
		 */
		c1.add("java");
		c1.add("vb");
		c1.add(".net");
		c2.add("java");
		c2.add(".net");
		System.out.println("containsAll方法:" + c1.containsAll(c2));
		List list3 = new ArrayList();
		System.out.println("containsAll(null)为:"+list3.containsAll(null));//
		/*
		 *  remove与removeAll方法
		 */
		System.out.println("原始c1" + c1);
		System.out.println("删除成功否:"+c1.remove("java"));
		System.out.println("remove方法执行后c1:" + c1);
		c1.add("php");
		c1.add("objective-c");
		c2.add("vb");
		System.out.println("原始c1" + c1);
		c1.removeAll(c2);
		System.out.println("removeAll执行后:" + c1);
		// remove符合equals原则,如集合中存在多个equals为true 元素,则删除第一个
		c1.add("php");
		String str = new String("php");
		c1.remove(str);
		System.out.println(c1);
		/*
		 *  集合的遍历
		 */
		Iterator<String> iter2 = c2.iterator();
		while (iter2.hasNext()) {
			String str1 = iter2.next();//无泛型需要手动强转
			if ("java".equals(str1)) {
				iter2.remove();
			} else {
				System.out.println("iterator遍历2" + str1);
			}
		}
		// 增强for循环
		for (String str3 : c2) {
			System.out.println("增强for循环:" + str3);
		}
	}

	/**
	 * 泛型类的定义和使用
	 */
	@SuppressWarnings({ "unused", "rawtypes", "unchecked" })
	public void testCell() {
		/**
		 * 泛型
		 */
		class Cell<T> {
			private T x;
			private T y;

			public Cell(T x, T y) {
				this.x = x;
				this.y = y;
			}

			public T getX() {
				return x;
			}

			public void setX(T x) {
				this.x = x;
			}

			public T getY() {
				return y;
			}

			public void setY(T y) {
				this.y = y;
			}
		}
		/*
		 * 泛型的赋值和使用
		 */
		Cell<Integer> c = new Cell<Integer>(1, 2);
		int x = c.getX();//自动拆包
		c.setX(123);//自动装箱
		//将有泛型的对象赋值给没有泛型的对象会丢失泛型,变为Object
		Cell c3 = c;
		c3.setX("123");
		//无泛型的对象取出值时需要强制转换
		String str = (String) c3.getX();
		//c3的改变导致c的改变,内部存储的实际是String运行期报出类转换异常
		//x = c.getX();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xerophyte000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值