zoukankan      html  css  js  c++  java
  • 学习java第18天

    1.集合

    *Collection接口:

    List : 记录元素保存顺序,且允许有重复元素

    Set :不 记录元素保存顺序,且不允许有重复元素 

    2.List

    主要的实现类ArrayList.LinkedList

    3.迭代器

    Iterator iterator = iterable.inerator();

    while(iterator.hasNext())       dosomething(iterator.next());

    4.增强的for语句

    import java.util.*;
    class TestList {
     public static void main(String[] args){
      //List<Photo> album = new ArrayList<>();
      List<Photo> album = new LinkedList<>();
      album.add( new Photo("one",new Date(), "classroom"));
      album.add( new Photo("two",new Date(), "library"));
      album.add( new Photo("three",new Date(), "gym"));
      album.add( new Photo("three",new Date(), "dorm"));
      Iterator<Photo> iterator = album.iterator();
      while(iterator.hasNext()){
       Photo photo = iterator.next();
       System.out.println( photo.toString() );
      }
      for( Photo photo : album ){ 
       System.out.println( photo );
      }
     }
    }
    class Photo {
     String title;
     Date date;
     String memo;
     Photo(String title, Date date, String memo){
      this.title = title;
      this.date = date;
      this.memo = memo;
     }
     @Override
     public String toString(){
      return title + "(" + date + ")" + memo;
     }
    }
    5.Stack
    遵循 “后进先出”原则
    包含三个方法:  #public Object push(Object item) : 将指定对象压入栈中
                               #Public Object pop() : 将栈最上面的元素从栈中取出,并返回这个对象
                               #public boolean empty() : 判断栈中有没有对象元素
    6.队列
    遵循“先进后出”的原则
    入队:固定在一端输入数据     出队:在一端输出数据
    import java.util.*;
    class TestQueue
    {
     public static void main(String[] args)
     {
      Queue q = new Queue();
      for( int i=0; i<5; i++ )
       q.enqueue( ""+i );
      while( ! q.isEmpty() )
       System.out.println( q.dequeue() );
     }
    }
    class Queue extends LinkedList
    {
     void enqueue( Object obj ){
      addLast( obj );
     }
     Object dequeue(){
      return removeFirst();
     }
     public boolean isEmpty(){
      return super.isEmpty();
     }
    }
    7.Set集
    *HashSet
    import java.util.*;
    public class TestHashSet {
     public static void main(String[] args) {
      Set h = new HashSet();
      h.add("1st");
      h.add("2nd");
      h.add("3rd");
      h.add("4th");
      h.add("5th");
      h.add(new Integer(6));
      h.add(new Double(7.0));
      h.add("2nd");          // 重复元素, 未被加入
      h.add(new Integer(6)); // 重复元素, 未被加入
      m1(h);
     }
     public static void m1(Set s){
      System.out.println(s);  // 调用了其toString()方法,注意显示时,元素无顺序
     }
    }
    8.Map
    *HashMap
    import java.util.*;
    class TestHashMap
    {
     public static void main( String[] args){
      //Map<String, String> map = new HashMap<String, String>();
      Map<String, String> map = new TreeMap<String, String>();
      map.put("one", "一");
      map.put("two", "二");
      map.put("three", "三");
      map.put("four", "四");
      map.put(new String("five"), "五");
      map.put(new String("five"), "五二");
      map.put("six", "四");
      System.out.println( map.get("three") );
      for( String key : map.keySet() )
       System.out.println( key +":" + map.get(key) );
      for( String value  : map.values() )
       System.out.println( value );
      for( Map.Entry<String,String> entry : map.entrySet() )
       System.out.println( entry.getKey() +":" + entry.getValue() );
      Iterator it = map.entrySet().iterator();
      while(it.hasNext()){
       Map.Entry<String,String> entry = (Map.Entry<String,String>)it.next();
       System.out.println( entry.getKey() +":" + entry.getValue() );
      }
     }
    }
    9.排序和查找
    *Arrays类
    用于对数组进行排序和搜索的类
    Arrays类提供了sort()和binarySearch()
     
    *Collection类
    import java.util.*;
    class TestCollectionsSort
    {
     public static void main(String[] args)
     {
      List<Person> school = new ArrayList<Person>();
      school.add( new Person("Li",23));
      school.add( new Person("Wang",28));
      school.add( new Person("Zhang",21));
      school.add( new Person("Tang",19));
      school.add( new Person("Chen",22));
      school.add( new Person("Zhao",22));
      System.out.println( school );
      
      Collections.sort( school, new PersonComparator() );
      System.out.println( school );
      int index = Collections.binarySearch(
        school, new Person("Li",23), new PersonComparator() );
      if( index >=0 )
       System.out.println( "Found:" + school.get( index ));
      else
       System.out.println( "Not Found!" );
     }
    }
    class Person
    {
     String name;
     int age;
     public Person( String name, int age){
      this.name=name;
      this.age=age;
     }
     public String toString(){
      return name+":"+age;
     }
    }
    class PersonComparator implements Comparator
    {
     public int compare( Object obj1, Object obj2 ){
      Person p1 = (Person)obj1;
      Person p2 = (Person)obj2;
      if( p1.age > p2.age ) return 1;
      else if(p1.age<p2.age) return -1;
      return p1.name.compareTo( p2.name );
     }
    }
    明天学习内容:泛型,常用算法
     
  • 相关阅读:
    【质量专栏】管理与领导_质量历史
    【python练习】excel中批量插入图形
    【python学习笔记】openpyxl操作excel高阶操作
    【高效办公】excel使用技巧汇总
    关于asp.net mvc中的cookie的对象传递以及加密解密
    《Javascript编程精解》读书笔记第三章 数据结构:对象与数组
    在visual studio2012中如何使用localDB具体讲解
    初试visual studio2012的新型数据库LocalDB
    《JavaScript编程精解》读书笔记目录汇总
    关于Global.asax的作用
  • 原文地址:https://www.cnblogs.com/SirNie/p/13367550.html
Copyright © 2011-2022 走看看