JavaSE08

14 篇文章 0 订阅
package day08;

import java.util.Arrays;

/**
 * JDK1.5之后推出了一个新特性增加for循环,也成为新循环
 * 
 * 新循环并不取代传统的for循环,它用来遍历集合或数组使用
 */
public class NewForDemo {
	public static void main(String[] args) {
		String[] array = {"one","two","three","four"};
		/*for(int i=0;i<array.length;i++){
			String str = array[i];
			System.out.println(str);
		}*/
		
		/**新循环是编译器认可,编译器会在编译源代码时改为使用传统for循环遍历数*/
		for(String s:array){
			System.out.println(s);
		}
		
		
	}
}

package day08;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

/**
 * 使用新循环遍历集合
 */
public class NewForDemo02 {
	public static void main(String[] args) {
		Collection c = new ArrayList();//下面黄色警告是没有加泛型
		c.add("one");
		c.add("two");
		c.add("#");
		c.add("three");
		c.add("four");
		c.add(9.01);
		
		/*
		 * 新循环遍历就是迭代器遍历集合,所以注意:
		 * 遍历过程中不能通过集合方式增删元素。
		 */
		Iterator i = c.iterator();//步骤:1.问 2.取
		for(Object str:c){
			if("#".equals(str)){
				//c.remove(str);		用集合删除会抛出异常
			}
			System.out.println(c);
		}
		
		
	}
}

package day08;

import java.util.ArrayList;
import java.util.Collection;

public class Demo {
	public static void main(String[] args) {
		int a = 1;
		String b = "abc";
		Point p = new Point(1,2);
		Collection c = new ArrayList();
		c.add(p);
		dosome(a,b,p,c);
		System.out.println("a:"+a);//?		1
		System.out.println("b:"+b);//?		abc
		System.out.println("p:"+p);//?		Piont [x=2, y=2]
		System.out.println("c:"+c);//?		[Piont [x=3, y=4]
		
	}

	private static void dosome(int a, String b, Point p, Collection c) {
		a = a+1;
		b = b+"!";
		p.setX(2);
		p = new Point(3,4);
		c.clear();
		c.add(p);
		c = new ArrayList();
		c.add(new Point(5,6));
		
	}
}

package day08;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 集合框架:
 * java.until.Collection
 * Collection是所有集合的顶级接口,规定了所有集合都应当具备的方法;
 * 
 * Collection下面有两个常见的子接口
 * java.until.List可重复且有序
 * java.util.Set不可重复,无序元素是否重复(依靠元素自身equals比较的结果而定)
 * @author 臻冉
 *
 */

public class CollectionDemo {
	public static void main(String[] args) {
		Collection  c = new ArrayList();//向上造型
		/*
		 * boolean add(E e)向当前集合中添加元素,成功添加则返回true
		 */
		boolean b = c.add("one");
		c.add("two");
		c.add("three");
		c.add("four");
		c.add("five");
		System.out.println(c);
		
		/*
		 * int size():返回当前集合的元素个数,也就是我们所谓的长度
		 */
		int size = c.size();
		System.out.println("c集合的长度:"+size);
		
		/*
		 * boolean isEmpty():判断当前集合是否为空,当集合中不含有任何元素时返回true
		 */
		boolean empty = c.isEmpty();
		System.out.println(empty);
		
		/*
		 * void clear():清空集合
		 */
		c.clear();
		System.out.println("清空集合");
		System.out.println(c);
		System.out.println("清空之后的集合长度"+c.size());
		System.out.println("清空之后是否为空"+c.isEmpty());
	}
}

package day08;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 集合存放的是元素的“引用”
 * @author 臻冉
 *
 */
public class CollectionDemo02 {
	public static void main(String[] args) {
		Collection c = new ArrayList();
		Point p=new Point(1,2);
		c.add(p);
		System.out.println("p:"+p);
		System.out.println("c:"+c);
		p.setX(3);
		System.out.println("p:"+p);
		System.out.println("c:"+c);
	}
}

package day08;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 判断当前集合是否包含元素
 * @author 臻冉
 *
 */
public class ConlicationDemo03 {
	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add(new Point(2,3));
		c.add(new Point(3,7));
		c.add(new Point(5,8));
		c.add(new Point(4,6));
		System.out.println(c);
		/**
		 * 集合会将给定元素于集合元素顺序进行equals比较,若
		 * 有比较为true的则意味集合包含元素
		 */
		Point p = new Point(5,8);
		boolean boo = c.contains(p);
		System.out.println(boo);
	}
}

package day08;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 删除集合元素
 * @author 臻冉
 *
 */
public class CollectionDemo04 {
	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add(new Point(2,3));
		c.add(new Point(3,7));
		c.add(new Point(5,8));
		c.add(new Point(4,6));
		System.out.println(c.size());
		
		Point p = new Point(5,8);
		/**
		 * boolean  remove(Object o)
		 * 删除给定元素集合是根据给定给定元素与集合元素顺序equals比较
		 * 删除返回true;
		 * 对于List集合,若存在多个,则只删除一个
		 */
		c.remove(p);
		System.out.println("删除完毕");
		System.out.println("删除后"+c.size());
		System.out.println(c);
	}
}

package day08;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 集合操作
 * @author 臻冉
 *
 */
public class CollectionDemo05 {
	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add("java");
		c.add("C#");
		c.add("C++");
		c.add("php");
		System.out.println(c);
		
		Collection c1 = new ArrayList();
		c1.add("ios");
		c1.add("addroid");
		c1.add("hongmeng");
		c.addAll(c1);
		
		/*
		 * boolean  addAll(Collection c)将给定的集合元素添加到当前集合
		 */
		
		boolean b = c.addAll(c1);
		System.out.println(c);
		/*
		 * boolean removerAll(Collection c)
		 * 删除集合中给定集合的公有元素
		 */
		c.removeAll(c1);
		System.out.println(c);
		
		Collection c2 = new ArrayList();
		c2.add("C#");
		c2.add("C++");
		c2.add("go");
		
		c.removeAll(c2);
		System.out.println("c2"+c2);
		System.out.println("删除后的c"+c);
	}
}

package day08;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * 遍历基础元素
 * Collection 提供了统一的遍历集合元素的方式:迭代器模式
 * Iterator iterator
 * 该方法可以获取一个用于遍历当前集合元素的迭代器实现类
 * 不同的集合实现类都提供了一个可以用于遍历自身的迭代器,
 * 我们不需要记住每种迭代器实现类的名字,只要Iterator接口,
 * 并调用迭代方法遍历即可。
 * 迭代器遍历集合遵循:问,取,删的遍历过程,其中删除元素不是必须的操作
 * @author 臻冉
 *
 */
public class CollectionDemo06 {
	public static void main(String[] args) {
		Collection c = new ArrayList();
		c.add("one");
		c.add("c#");
		c.add("#");
		c.add("two");
		c.add("#");
		c.add("three");
		c.add("#");
		c.add("four");
		c.add("#");
		System.out.println(c);
		/*
		 * 创建迭代器实例
		 * Iterator it = c.iteration()
		 * E next():取出集合中下一个元素
		 * 
		 * 迭代器要求在遍历过程中不允许通过集合的方式增删元素,否则会抛出异常
		 * 删除元素可以通过迭代器提供的remove()方法。
		 * 
		 * 
		 */
		Iterator  it = c.iterator();
		while(it.hasNext()){//有元素则进行循环,没有就跳出循环
			String str = (String)it.next();
			if("#".equals(str)){
				//c.remove(str);此方法不可行  用集合删除会抛出异常
				it.remove();
				
			}
			System.out.println("遍历的数据有"+str);
			
		}
		System.out.println("删除完毕!");
		System.out.println("删除后的集合:"+c);
		
	}
}

package day08;

public class Point  implements Comparable<Point> {
	private int x;
	private int y;
	public Point(int x, int y) {
		super();
		this.x = x;
		this.y = y;
	}
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public int getY() {
		return y;
	}
	public void setY(int y) {
		this.y = y;
	}
	
	@Override
	public String toString() {
		return "Piont [x=" + x + ", y=" + y + "]";
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + x;
		result = prime * result + y;
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Point other = (Point) obj;
		if (x != other.x)
			return false;
		if (y != other.y)
			return false;
		return true;
	}
	
	/*
	 * 实现Comparable接口,要求必须重写该方法:
	 * 该方法的意义是定义当前对象与参数对象的大小关系,
	 * 当返回值>0:当前对象this大于参数对象o
	 * 当返回值<0:this<o;
	 * 当返回值=0;this=o;
	 */
	public int compareTo(Point o){
		//当前对象
		int len = this.x*this.x+this.y*this.y;
		//参数
		int olen = o.x*o.x+o.y*o.y;
		return len-olen;
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值