基本数据类型对象包装类

public static void main(String[] args) {
		//将整数类型转换为字符串类型。
		int a = Integer.parseInt("123");
		sop("a="+a);
		sop("a="+(a+4));//结果为127

	}
	public static void sop(String str) {
		System.out.println(str);
	}
}

集合框架(类):

public static void main(String[] args) {
		//创建一个集合容器,使用collection接口的子类,ArrayList
		ArrayList al = new ArrayList();
		//01添加元素
		al.add("java01");
		al.add("java02");
		al.add("java03");
		sop(al);//02打印元素
		//03获取合数,集合长度。
		sop(al.size());
		sop(al.remove("java01"));//04删除一个。claer全部删除
		//05判断元素
		sop("java02是否存在:"+al.contains("java02"));
		sop(al.isEmpty());//判断集合是否为空

	}
	public static void sop(Object obj) {
		System.out.println(obj);
	}
}

List集合共性方法:

public static void main(String[] args) {		
		ArrayList al = new ArrayList();	
		al.add("java01");
		al.add("java02");
		al.add("java03");
		al.add(1,"java04");//指定位置添加元素。
		sop(al);
		//al.remove(2);//指定位置删除元素
		al.set(0, "java001");//修改指定位置的元素
		sop(al.get(1));//获取指定位置的元素
		sop(al);
		//获取所有元素
		for(int x = 0;x < al.size();x++) {
			System.out.println("al["+x+"]="+al.get(x));
		}
	}
	public static void sop(Object obj) {
		System.out.println(obj);
	}
}


 

public static void main(String[] args) {		
		ArrayList al = new ArrayList();	
		al.add("java01");
		al.add("java02");
		al.add("java03");
		sop(al);
		ListIterator li = al.listIterator();
		while(li.hasNext()) {
			Object obj = li.next();
			if(obj.equals("java02")) {
				li.set("java006");
			}
		}
		while(li.hasPrevious()) {//hasNext正向取
			sop("pre::"+li.previous());
		}
		sop(al);
		
	}
	public static void sop(Object obj) {
		System.out.println(obj);
	}
}

vector中的枚举:

public class VectorDemo {
	/*枚举就是Vector特有的取出方式,发现枚举和迭代很像。其实一样。
	 * 
	 * */

	public static void main(String[] args) {
		Vector v = new Vector();
		v.add("java01");
		v.add("java02");
		v.add("java03");
		v.add("java04");
		Enumeration en = v.elements();
		while(en.hasMoreElements()) {
			System.out.println(en.nextElement());
		}
	}
}

LinkedList:

public static void main(String[] args) {
		LinkedList link = new LinkedList();
		link.add("java01");
		link.add("java02");
		link.add("java03");
		link.add("java04");
		//sop(link.getFirst());
		//sop(link.removeFirst());
		while(!link.isEmpty()) {//移动第一个遍历字符串
			sop(link.removeFirst());
		}
	}
	public static void sop(Object obj) {
		System.out.println(obj);
	}
}

练习:

public static void main(String[] args) {
		DuiLie dl = new DuiLie();
		dl.MyAdd("java01");
		dl.MyAdd("java02");
		dl.MyAdd("java03");
		dl.MyAdd("java04");
		while(!dl.isNull()) {
			System.out.println(dl.myGet());
		}	
	}
}
class DuiLie{
	private LinkedList link;
	DuiLie(){
		link = new LinkedList();
	}
	public void MyAdd(Object obj) {
		link.addFirst(obj);
	}
	public Object myGet() {
		return link.removeFirst();
	}
	public boolean isNull() {
		return link.isEmpty();
	}
}

去除ArrayList中重复的元素:

  1. 	public static void main(String[] args) {
    		
    		ArrayList al = new ArrayList();
    		al.add("java01");
    		al.add("java02");
    		al.add("java01");
    		al.add("java02");
    		al.add("java01");
    		al.add("java03");
    		sop(al);                         Iterator it = al.iterator();//在迭代时循环中Next只能调用一次,就要hasNext判断一次。会出现找不到元素异常。
    		al = singleElement(al);          while(it.hasNext()){
                                                  sop(it.next()+" ..."+it.next());
                                                    }
    		sop(al);
    	}
    	public static void sop(Object obj) {
    		System.out.println(obj);
    	}	
    	public static ArrayList singleElement(ArrayList al) {
    		ArrayList newAl = new ArrayList();//新建一个容器。
    		Iterator it = al.iterator();//遍历集合元素。
    		while(it.hasNext()) {
    			Object obj = it.next();
    			if(!newAl.contains(obj)) 
    				newAl.add(obj);					
    		}
    		return newAl;			
    	}
    }
    

List人练习:

public static void sop(Object obj) {
		System.out.println(obj);
	}

	public static void main(String[] args) {
		ArrayList al = new ArrayList();
		al.add(new Person("lisi01",10));//al.add(Object obj) == Object obj=new Person("lisi01",10)
		al.add(new Person("lisi02",20));
		al.add(new Person("lisi03",30));
		al.add(new Person("lisi03",30));
		al=singleElement(al);
		Iterator it = al.iterator();
		while(it.hasNext()) {
			Person p = (Person)it.next();
			sop(p.getName()+"..."+p.getAge());
		}
	}
	public static ArrayList singleElement(ArrayList al) {
		ArrayList newAl = new ArrayList();//新建一个容器。
		Iterator it = al.iterator();//遍历集合元素。
		while(it.hasNext()) {
			Object obj = it.next();
			if(!newAl.contains(obj)) 
				newAl.add(obj);					
		}
		return newAl;			
	}
	
}
class Person{
	private String name;
	private int age;
	Person(String name,int age){
		this.name = name;
		this.age = age;
	}
	public boolean equals(Object obj) {
		if(!(obj instanceof Person)) {
			return false;
		}
		Person p = (Person)obj;
		//System.out.println(this.name+"..."+p.age);
		return this.name.equals(p.name) && this.age == p.age;
	}
	public void setName(String n) {
		name = n;
	}
	public String getName() {
		return name;
	}
	public void setAge(int a) {
		age = a;
	}
	public int getAge() {
		return age;
	}
}

2.HashSet:元素是无序的(存入和取出的不一定一致)元素不可以重复

2.1HashSet  底层数据结构是哈希表

2.2TreeSet

Set集合的功能和collection是一致的

public static void main(String[] args) {
		HashSet hs = new HashSet();
		sop(hs.add("java01"));
		sop(hs.add("java01"));
		hs.add("java01");
		hs.add("java02");
		hs.add("java03");
		hs.add("java04");
		Iterator it = hs.iterator();
		while(it.hasNext()) {
			sop(it.next());
		}
	}
	public static void sop(Object obj) {
		System.out.println(obj);
	}
}

无序并且不重复

public static void main(String[] args) {
		HashSet hs = new HashSet();		
		hs.add(new Person1("java01",11));
		hs.add(new Person1("java02",12));
		hs.add(new Person1("java03",13));	
		hs.add(new Person1("java03",13));
		Iterator it = hs.iterator();
		while(it.hasNext()) {
			Person1 p = (Person1)it.next();
			sop(p.getName()+"..."+p.getAge());
		}
	}
	public static void sop(Object obj) {
		System.out.println(obj);
	}
}
class Person1{
	private String name;
	private int age;
	Person1(String name,int age){
		this.name = name;
		this.age = age;
	}
	public int hashCode() {
		System.out.println(this.name+"...+hashCode");
		return name.hashCode()+age;
	}
	public boolean equals(Object obj) {
		if(!(obj instanceof Person1)) {
			return false;
		}
		Person1 p = (Person1)obj;
		System.out.println(this.name+"..equals.."+p.name);
		return this.name.equals(p.name) && this.age == p.age;
	}
	public void setName(String n) {
		name = n;
	}
	public String getName() {
		return name;
	}
	public void setAge(int a) {
		age = a;
	}
	public int getAge() {
		return age;
	}
}

会自动去除相同的元素,如果主要条件相同一定要判断一下次要条件。

创建学生对象存储按照学生年龄进行排序

public static void main(String[] args) {
		TreeSet ts = new TreeSet();
		ts.add(new Student("lisi01",12));
		ts.add(new Student("lisi03",14));
		ts.add(new Student("lisi02",13));	
		ts.add(new Student("lisi04",13));
		Iterator it =ts.iterator();
		while(it.hasNext())
		{
			Student stu = (Student)it.next();
			System.out.println(stu.getName()+"..."+stu.getAge());
		}
	}	
}
 class Student implements Comparable{//该接口强制让学生具有比较行
	private String name;
	private int age;
	Student(String name,int age){
		this.name=name;
		this.age=age;		
	}
	public int compareTo(Object obj) {
//return -1;//return 0只存进去一个元素,-1是反着取,1是正着取出。
		if(!(obj instanceof Student)) 
			throw new RuntimeException("不是学生对象");		
		Student s = (Student)obj;
		System.out.println(this.name+"..compareTO"+s.name);
		if(this.age > s.age)
		{return 1;}
		if(this.age==s.age)
			{return this.name.compareTo(s.name);}//如果年龄相同增加比较姓名是否相同
			return -1;
	}
	public void setName(String n) {
		name=n;
	}
	public String getName() {
		return name;
	}
	public void setAge(int a) {
		age=a;
	}
	public int getAge() {
		return age;
	}	
}

 

public static void main(String[] args) {
		TreeSet ts = new TreeSet();
		ts.add(new Student("lisi01",12));
		ts.add(new Student("lisi05",12));
		ts.add(new Student("lisi03",14));
		ts.add(new Student("lisi02",13));	
		ts.add(new Student("lisi04",13));
		Iterator it =ts.iterator();
		while(it.hasNext())
		{
			Student stu = (Student)it.next();
			System.out.println(stu.getName()+"..."+stu.getAge());
		}
	}	
}
 class Student implements Comparable{//该接口强制让学生具有比较行
	private String name;
	private int age;
	Student(String name,int age){
		this.name=name;
		this.age=age;		
	}
	public int compareTo(Object obj) {		
		if(!(obj instanceof Student)) 
			throw new RuntimeException("不是学生对象");		
		Student s = (Student)obj;
		//System.out.println(this.name+"..compareTO"+s.name);
		if(this.age > s.age)
		{return 1;}
		if(this.age==s.age)
			{return this.name.compareTo(s.name);}//如果年龄相同增加比较姓名是否相同
			return -1;
	}
	public void setName(String n) {
		name=n;
	}
	public String getName() {
		return name;
	}
	public void setAge(int a) {
		age=a;
	}
	public int getAge() {
		return age;
	}	
}
class MyCompare implements Comparator{
	public int compare(Object o1,Object o2) {
		Student s1 = (Student)o1;
		Student s2 = (Student)o2;
		int num = s1.getName().compareTo(s2.getName());
		if(num==0) {
			return new Integer(s1.getAge()).compareTo(s2.getAge());
//			if(s1.getAge()>s2.getAge()) 
//				return 1;
//			if(s1.getAge()==s2.getAge())
//				return 0;	
//			return 1;
		}
		return num;
	}
}

练习:

public static void main(String[] args) {
		TreeSet st = new TreeSet(new StrLenComparator());
		st.add("a");
		st.add("ab");
		st.add("dca");
		st.add("aaa");
		st.add("ddef");
		Iterator it = st.iterator();//迭代器
		while(it.hasNext()) {
			System.out.println(it.next());
		}
	}
}
class StrLenComparator implements Comparator{
	public int compare(Object o1,Object o2) {
		String s1 = (String)o1;
		String s2 = (String)o2;
		int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
		if(num==0) //如果不加判断会出现aaa不打印的现象。
			return s1.compareTo(s2);
		
		return num;
	}
}

泛型

public static void main(String[] args) {
		TreeSet<String> ts = new TreeSet<String>(new LenComparator());
		ts.add("aa");
		ts.add("bbc");
		ts.add("a");
		ts.add("abc");
		ts.add("ewrwer");
		Iterator<String> it = ts.iterator();
		while(it.hasNext()) {
			String s= it.next();
			System.out.println(s);
		}
	}
}
class LenComparator implements Comparator<String>{
	public int compare(String o1,String o2) {
		int num = new Integer(o1.length()).compareTo(new Integer(o2.length()));
		if(num==0)
			return o1.compareTo(o2);
			return num;
	}
}

15-12

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值