`
lj_gzy2014
  • 浏览: 16696 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java编程之集合框架

    博客分类:
  • java
阅读更多

           java里面集合框架是比较重要的基础知识,虽然不是很难,但经常使用,特别是ArrayList、HashMap经常用到。java集合框架大致分为三个部分,分别是List、Set、Map,这三个都是接口,其具体实现有多个类,但常用的分别是ArrayList、HashSet、HashMap,下面分别总结一下这三者的基本使用方法。

          (1)ArrayList使用较广,其功能相当于一个数组队列,存取速度快,具体使用,请看下面的代码:

写道
package com.gzy0930_L2集合类;

import java.util.ArrayList;
//集合类的使用
public class L2_1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Student> al=new ArrayList<>();
Student stu1=new Student();
Student stu2=new Student();
Student stu3=new Student();
stu1.setSno(01);
stu1.setAge(10);
stu1.setSname("孙悟空");
stu2.setSno(02);
stu2.setAge(20);
stu2.setSname("猪八戒");
stu3.setSno(03);
stu3.setAge(30);
stu3.setSname("沙悟净");
//增加对象
al.add(stu1);
al.add(stu2);
al.add(stu3);
//遍历
for(int i=0;i<al.size();i++){
Student stu=al.get(i);
System.out.println("第"+(i+1)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
}
//删除第一个对象
al.remove(0);
for(int i=0;i<al.size();i++){
Student stu=al.get(i);
System.out.println("第"+(i+1)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
}
Student stu4=new Student();
stu4.setSno(04);
stu4.setAge(40);
stu4.setSname("唐僧");
//在指定位置添加对象
al.add(0, stu4);
for(int i=0;i<al.size();i++){
Student stu=al.get(i);
System.out.println("第"+(i+1)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
}
}

}
 
(2)为优化查询速度而设计的Set。要放进HashSet里面的Object还得定义hashCode()。一定要记住,Set要有一个判断以什么顺序来存储元素的标准,也就是说你必须实现Comparable接口,并且定义compareTo()方法。 要使用的学生类代码如下:
package com.gzy0930_L2集合类;

public class Student {
	private int sno;
	private String sname;
	private int age;
	
	public void setSno(int sno){
		this.sno=sno;
	}
	public void setSname(String sname){
		this.sname=sname;
	}
	public void setAge(int age){
		this.age=age;
	}
	public int getSno(){
		return sno;
	}
	public String getSname(){
		return sname;
	}
	public int getAge(){
		return age;
	}
}
 
(3)Map是一种键对象和和值对象相关联的一种容器,HashMap是Map的一种实现,里面有key和value一一映射,key值唯一,如果后面重复前面的键值,就会将前面的数据覆盖,不会出现两个相同的key。HashMap相当于数组与链表的结合,存取速度快而且便于删除添加,HashMap使用通过key找到相应的value,遍历需要用到迭代器Iterator。代码如下:
package com.gzy0930_L2集合类;

import java.util.HashMap;
import java.util.Iterator;
//hashmap中有个键值唯一标识每一个元素,使存入其中的对象不会有重复
//可避免重复
//hashmap先进先出
public class L2_5 {
	public static void main(String[] args) {
		HashMap<String,Student> hm=new HashMap<>();
		Student stu1=new Student();
		Student stu2=new Student();
		Student stu3=new Student();
		stu1.setSno(01);
		stu1.setAge(10);
		stu1.setSname("孙悟空");
		stu2.setSno(02);
		stu2.setAge(20);
		stu2.setSname("猪八戒");
		stu3.setSno(03);
		stu3.setAge(30);
		stu3.setSname("沙悟净");
		//添加方式有所不同
		/**
		 * 如果后面的键值和前面相同,就会覆盖其前面的对象,
		 * hashmap中不可能出现两个相同的键值
		 */
		hm.put("001", stu1);
		hm.put("002", stu2);
		hm.put("003", stu3);

	//遍历	
		Iterator<String> it=new Iterator<String>() {

			
			public boolean hasNext() {
				return false;
			}
			public String next() {
			return null;
			}
		public void remove() {
				
			}
		};
		it=hm.keySet().iterator();
		int i=0;
		while(it.hasNext()){
			i++;
			String key=it.next().toString();
			Student stu=hm.get(key);
			System.out.println("第"+(i)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
		}
	}

}
	
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics