`
612星球
  • 浏览: 9342 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

十.集合

阅读更多
什么是集合?
定义数组:int[] array = new int[10];
数据类型和长度已经规定好
队列:实现动态数组(其实数组交换的过程)

Collection 是根结口

根结口 Collection:
子接口 List
实现类:ArrayList:有序,可有重复元素,基于数组
   LinkedList:有序,可有重复元素,基于链表
如果平凡插入和删除:选择LinkedList
如果平凡遍历:选择ArrayList

遍历:通过循环遍历

子接口  Set
实现类:HashSet:无序,不能有重复元素,基于hash表

遍历:通过迭代器遍历



接口 Map:
实现类:HashMap:有序,以键值对的形式存储元素,k=v,基于hash表
k不能有重复,v可以重复

例一:

Student.java

package cn.netjava.collection;
/**
* 学生类
* @author ssss
*
*/
public class Student {
//定义属性
public String name;
public int age;

/** 构造函数 */
public Student(String name,int age){
this.name = name;
this.age = age;
}

/** 重写toString()方法 */
public String toString(){
return name+"   今年:"+age+"岁了";
}


/** 学习的方法 */
public void study(){
System.out.println(name+"正在学习中....");
}

}


ArrayListDemo.java

package cn.netjava.collection;
/**
* ArrayList基于数组的队列
* @author ssss
*
*/
public class ArrayListDemo {
/** 主函数 ,程序入口 */
public static void main(String[] args){
//实例化ArrayList对象
java.util.List<Object> list = new java.util.ArrayList<Object>();

//创建一些学生对象,并添加到队列中
for(int i=0;i<10;i++){
Student stu = new Student("学生"+i,20+i);
list.add(stu);
}

System.out.println(list);

}


/** 遍历队列的方法  */
public static void traverse(java.util.ArrayList<Object> list){
//循环遍历
for(int i=0;i<list.size();i++){
//强制转型
System.out.print(list.get(i)+"  ");
}
}
}


LinkedList.java

package cn.netjava.collection;
/**
* LinkedList基于链表队列
* @author ssss
*
*/
public class LinkedListDemo {
/** 主函数 */
public static void main(String[] args){
//实例化LinkedList对象
java.util.LinkedList<Student> list = new java.util.LinkedList<Student>();

//获取当前系统时间,以毫秒形式
long currentTime = System.currentTimeMillis();

//创建一些学生对象,并添加到队列中
for(int i=0;i<1000000;i++){
Student stu = new Student("学生"+i,20+i);
list.add(stu);
}

Student stu = new Student("aaa",100);
list.add(10, stu);
list.add(2, stu);

//获取当前系统时间,以毫秒形式
long currentTime2 = System.currentTimeMillis();

long costTime = currentTime2 - currentTime;

//遍历list
System.out.println("LinkedList耗时:"+costTime);
}
}


HashMapDemo.java

package cn.netjava.collection;
/**
* HashMap基于Hash表的集合,以键值对形式存取元素
* @author ssss
*
*/
public class HashMapDemo {
/** 主函数 */
public static void main(String[] args){
//实例化HashMap对象
java.util.HashMap<Integer,Student> map = new java.util.HashMap<Integer,Student>();

//添加元素,即添加键值对
for(int i=0;i<10;i++){
Student stu = new Student("学生"+i,20+i);
map.put(i, stu);
}
//获取map的key集合
java.util.Set<Integer> set = map.keySet();

//遍历set
java.util.Iterator<Integer> it = set.iterator();
while(it.hasNext()){
int key = it.next();
Student stu = map.get(key);
System.out.println("key是:"+key+"     value是:"+stu);
}
}
}


HashSetDemo.java

package cn.netjava.collection;
/**
* HashSet基于Hash表的集合
* @author ssss
*
*/
public class HashSetDemo {
/** 主函数 */
public static void main(String[] args){
//实例化HashSet对象
java.util.Set set = new java.util.HashSet();


// for(int i=0;i<10;i++){
// Student stu = new Student("学生"+i,20+i);
// set.add(stu);
// }

//基本数据类型
int a = 0;
int b = 0;
int c = 1;
set.add(a);
set.add(b);
set.add(c);


//
System.out.println("长度是:"+set.size());
// //遍历set
traverse(set);
}

/** 遍历set的方法 */
public static void traverse(java.util.Set set){
//循环????什么办法
//系统提供了一种叫做迭代器
java.util.Iterator it = set.iterator();
while(it.hasNext()){
String str = it.next().toString();
System.out.println(str);
}

}
}

例二:

HashMapDemo.java

package cn.collection.map;

public class HashMapDemo {
/** 主函数 */
public static void main(String[] args){

//实例化HashMap对象
java.util.HashMap<Integer,Letter> map = new java.util.HashMap<Integer,Letter>();

//添加元素,即添加键值对
for(int i=0;i<10;i++){
Letter ll = new Letter();
map.put(i, ll);
}
//获取map的key集合
java.util.Set<Integer> set = map.keySet();

//遍历set
java.util.Iterator<Integer> it = set.iterator();
while(it.hasNext()){
int key = it.next();
Letter ll = map.get(key);
System.out.println("key是:"+key+"     value是:"+ll);
}
}
}

Letter.java

package cn.collection.map;

public class Letter {
public String name;
public int i;

/** 重写toString()方法 */
public String toString(){
return i+"对应的字母是:"+name;

}

}






分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics