java 集合框架

java 的集合框架,位于 java.util包下
                   collection
      List(有序,可重复)    set(无序,不可重复)   queue(队列)       
 ArrayList   linkedList              
[ArrayList] add, size,clear,get,set
 [linkeList] addFirst,addlast,removefirst()removelast()  
[set]:add,remove,clear,size

ArrayList查询的速度要快一些, LinkedList删,添的速度要快点
Map stu = new HashMap();
put,clear,keyset,values,remove,size等


import java.util.*;

public class Student {

 private String name;
 private String sex;
 private int age;
 
 //构造方法
 public Student() {
  super();
 }
 public Student(String name, String sex, int age) {
  super();
  this.name = name;
  this.sex = sex;
  this.age = age;
 }
 
 //封装
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 
 //读取里面的数据
 public static void print(List newList){
  for(int i=0;i<newList.size();i++){
   Student s = (Student)newList.get(i);//返回列表中指定位置的元素。就是对象
   System.out.println((i+1+":"+s.getName()));
   System.out.println((i+1+":"+s.getSex()));
   System.out.println((i+1+":"+s.getAge()));
  }
 }
 
 
 public static void main(String args[]){
  Student stu1 = new Student("张三","男",20);
  Student stu2 = new Student("李四","女",22);
  Student stu3 = new Student("五四","女",21);
  Student stu4 = new Student("在四","女",22);
  Student stu5 = new Student("赵六","女",31);
  Student stu6 = new Student("田七","女",11);
  
  Student stu7 = new Student("aa","女",11);
  
  //List ls = new ArrayList();
  LinkedList ls = new LinkedList();
  List l = new ArrayList();
  ls.add(0,stu1);
  ls.add(stu2);
  ls.add(stu3);
  ls.add(stu4);
  ls.add(stu5);
  ls.add(stu6);
  
  //添加的删除[首 尾]
  /*ls.addFirst(stu7);
  ls.addLast(stu7);*/    
//  ls.removeFirst();
//  ls.removeLast();
  
  //ls.removeFirstOccurrence(stu2);
  
  l.add(stu1);
  l.add(stu7);
  
  //ls.addAll(2,l); //将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)"可以添加其它List集合"。
  //ls.remove(stu1);// 用户对象名删除,还可以用下标删除
  
  //ls.removeAll(ls);//从列表中移除指定 collection 中包含的其所有元素(可选操作)。
  
  //ls.retainAll(ls);//仅在列表中保留指定 collection 中所包含的元素(可选操作)。
     System.out.println("T98共有几名学员:"+ls.size());
     
     System.out.println("*********************************");
     
     System.out.println("T98共有几名学员:"+l.size());
  
     System.out.println("*********************************");
     
     //ls.set(2, stu1);//用指定元素替换列表中指定位置的元素(可选操作)。
     
     
     //ls.subList(0,2).clear();//此方法省去了显式范围操作(此操作通常针对数组存在)在这个范围内就可以删除。
    // ls.subList(0,2).add(stu7);
     
     //查找集合
//     if(ls.contains(ls))
//      System.out.println("此数据存在!");
//     else
//      System.out.println("对不起没有你要找的东西!");
     
     
     //查找对象名  还可以通过索引查找  ls.get(1)
     //int indexOf(Object o)返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
     //int lastIndexOf(Object o)返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。
     
//     if((ls.indexOf(stu1)) != -1)
//      System.out.println("此数据存在!");
//     else
//      System.out.println("对不起没有你要找的东西!");
     
     //ls.remove(0);
    
     
     System.out.println("T98共有几名学员:"+ls.size());
     
        print(ls);
     
 }
 
}


package JSPch1;

import java.util.*;

public class Student2 {

 private String name;
 private String sex;
 private int age;
 
 //构造方法
 public Student2() {
  super();
 }
 public Student2(String name, String sex, int age) {
  super();
  this.name = name;
  this.sex = sex;
  this.age = age;
 }
 public Student2(String name, String sex) {
  super();
  this.name = name;
  this.sex = sex;
  
 }
 
 //封装
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 
 public static void print(Object stu){
  for(int i=0;i<1;i++){
   System.out.println(i+1+"个:");
  }
 }
 
 @Override
 public String toString() {
  // TODO 自动生成方法存根
  return "姓名:"+this.getName()+"性别:"+this.getSex()+"年龄:"+this.getAge();
 }
 
 
 
 
 public static void main(String[] args) {
  // TODO 自动生成方法存根

  //定义集合
  Map ma = new HashMap();
  
  Map ls = new HashMap();
  
  Student2 stu1 = new Student2("张三","男",12);
  Student2 stu2 = new Student2("李四","男",20);
  Student2 stu3 = new Student2("王五","男",22);
  
  //Student2 stu4= new Student2("王五","男");
  
  ma.put(stu1.getName(), stu1);
  ma.put(stu2.getName(), stu2);
  ma.put("王五", stu3);
  
 // System.out.println(ma.get(stu1.name));
  
//  if(ma.containsKey(stu3.name)){
//   System.out.println(ma.get(stu3.name));
//  }
//  else{
//   System.out.println("对不起没有你要查找的数据!");
//  }
  //ma.remove("李四");
  
  System.out.println("键集:"+ma.keySet());
  System.out.println("值集:"+ma.values());
//  System.out.println("键值和一"+ma);
  
  System.out.println("=========================================="); 

  
  System.out.println("在校学员人数:"+ma.size());
  
  System.out.println("==========================================");
  
    //通过键,获得所有的键值
  Set<String> set = ma.keySet();
    Iterator<String> it= set.iterator();
    while(it.hasNext()){
      String key =  it.next();
      System.out.println(key);
     
   //   List<Board> list=map.get(key);//Map得到它的键里的值
     // List<Board> ls = new ArrayList<Board>();
    Student2 d=(Student2) ma.get(key);//看你上面的值是,Student2对象,还是集合
   
   System.out.println(d.getName()+"\t"+d.sex+"\t"+d.getAge());
    }
  
   
    //数组排序
    String[] art ={"12","45","745","5","4"};
   Arrays.sort(art);
    for(String x : art){
     System.out.println(x);
    }
   
  

   
 }

}


Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。

List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)

List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列 (deque)。

HashTable  :此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。
HashMap: 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

原文地址:https://www.cnblogs.com/liulu/p/1832411.html