zoukankan      html  css  js  c++  java
  • 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 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

  • 相关阅读:
    冷饭新炒:理解Sonwflake算法的实现原理
    nodejs多线程的探索和实践
    git 更新某个目录或文件
    Redis中删除过期Key的三种策略
    MySql(Innodb)事务隔离级别
    Maven的依赖范围
    Maven入门和介绍
    IDEA(Web项目忽略配置文件后)导入项目,拉取项目后的配置
    IDEA(普通项目忽略配置文件后)导入项目,拉取项目后的配置
    Maven的pom文件中标签含义
  • 原文地址:https://www.cnblogs.com/liulu/p/1832411.html
Copyright © 2011-2022 走看看