zoukankan      html  css  js  c++  java
  • java--exceptions

    /*Explicit Exceptions:
     * We can also throw our own exceptions using the throw keyword.
     *1) Can provide more information message to a user.
     *2) Can provide more information to code that "catches " the exceptions.
     */
    
    
    
    /*The Enhanced For Loop 
     * Java allows us to iterate through Lists and Sets using 
     * a convenient shorthand syntax sometimes called the
     * "foreeach" or  "enhanced for" loop.
     */
    
    
    
    /*For-each Iteration And ArraySets
     *To support theenchanced for loop,
     we need to make ArraySet implements. 
     *There are also some default methods in Iterable, not shown.
     *
     * public interfce Iterator<T> {
     *    Iterator<T> iterator();
     *
     * }
     *
     */
    
    import java.util.HashSet;
    import java.util.Set;
    import java.util.Iterator;
    
    
    public class ArraySet<T> implements Iterable<T>{
        private T[] items;
        private int size;
        
        public ArraySet() {
            items = (T[]) new Object[100];
            size = 0;
        }
        
        /*Returns true if this map contains a mapping for the specified key*/
    
        public boolean contains(T x) {
    
            for(int i = 0; i < size; i+= 1) {
                if(items[i] == null) {
                    if(x == null) {
                        return true;
                    }
                }
                if(x.equals(items[i])) {
                    return true;
                }
            }
            return false;
        }
        
        
        public void add(T x) {
            if(x == null) {
                throw new IllegalArgumentException("You can't add null to an ArraySet");
            }
            if(contains(x)) {
                return;
            }
            items[size] = x;
            size += 1;
        }
        
        public int size() {
            return size;
        }
        
        /**returns an iterator into ME. */
        public Iterator<T> iterator() {
            return new ArraySetIterator();
        }
        
        /*public interface Iterator <T> {
         *        boolean hasNext();
         *        T next();
         * }
         */
        
        private class ArraySetIterator implements Iterator<T> {
            private int wizPos;
            public ArraySetIterator() {
                wizPos = 0;
            }
    
            public boolean hasNext() {
                return wizPos < size;
            }
    
            public T next() {
                T returnItem = items[wizPos];
                wizPos += 1;
                return returnItem;
            }
        }
    
        /*The toString() method provides a string representation
         * of an object. 
         *
         *System.out.println(Object x) calls x.toString();
        The default toString() is the name of the class, @,memory location 
        of the object;
    
         */
    
        @Override
        public String toString() {
    //        String returnString = "{";
            StringBuilder returnSB = new StringBuilder("{");    
                for(int i = 0; i < size-1; i+=1) {
                    returnSB.append(items[i].toString());
                    returnSB.append( ", ");
                }
                returnSB.append(items[size-1]);
                returnSB.append( "}");
                return returnSB.toString();
    
    
        /*    for(T item : this) {
                returnString += item.toString();
                returnString += ",";
            }*/
        }
    
        /* Equals vs. == 
         * == compares the bits. For reference, == means "referencing the same object"
         *
         */
        @Override 
        public boolean equals(Object other){
            if(this == other) {return true; }
            if(other == null) { return false; }
            if (other.getClass() != this.getClass()) {
                return false;
            }
            ArraySet<T> o = (ArraySet<T>) other;
            if (o.size() != this.size()) {
                return false;
            } 
            for(T item : this) {
                if(!o.contains(item)) {
                    return false;
                }
            }
            return true;
        }
        
    
        public static void main(String[] args) {
            /*Set<Integer> javaset = new HashSet<>();
            javaset.add(5);
            javaset.add(23);
            javaset.add(42);
            
            Iterator<Integer> seer = javaset.iterator();
            
            while(seer.hasNext()) { 
                int i = seer.next();
                System.out.println(i);
            }*/
    
            ArraySet<Integer> aset = new ArraySet<>();
            aset.add(5);
            aset.add(23);
            aset.add(42);
            System.out.println(aset);
            Iterator<Integer> aseer = aset.iterator();
    /*        while(aseer.hasNext()) { 
                int i = aseer.next();
                System.out.println(i);
            }
            
            for(int i : aset){
                System.out.println(i);
            }*/
    
    
            System.out.println(aset.equals(null));
            System.out.println(aset.equals("fish") );
            System.out.println(aset.equals(aset));
    /*        ArraySet<String> s = new ArraySet<>();
            s.add(null);
            s.add("horse");
            s.add("fish");
            s.add("house");
            s.add("fish");
            System.out.println(s.contains("horse"));
            System.out.println(s.size());*/
            
        }
    
    }
    The Safest Way to Get what you Want is to Try and Deserve What you Want.
  • 相关阅读:
    C# Http方式下载文件到本地
    C#中如何让ListView控件点击选中整行
    C#中toolStrip或statusStrip遮挡了SplitContainer怎么办?
    C# 判断字符串是否符合十六进制,八进制,二进制和十进制整数格式的正则表达式
    从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!!
    Java or Python?初学者的选择
    从Java的前景与就业情况看,Java是你首选的编程语言,没有之一
    好书推荐:Java与模式.pdf
    java多线程、集合和IO面试题_02
    走出创业过程中悲伤的低谷
  • 原文地址:https://www.cnblogs.com/Shinered/p/10465626.html
Copyright © 2011-2022 走看看