• 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.
  • 相关阅读:
    Java如何编写自动售票机程序
    install windows service
    redis SERVER INSTALL WINDOWS SERVICE
    上传文件
    This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.
    解决Uploadify上传控件加载导致的GET 404 Not Found问题
    OracleServiceORCL服务不见了怎么办
    Access to the temp directory is denied. Identity 'NT AUTHORITYNETWORK SERVICE' under which XmlSerializer is running does not have sufficient permiss
    MSSQL Server 2008 数据库安装失败
    数据库数据导出成XML文件
  • 原文地址:https://www.cnblogs.com/Shinered/p/10465626.html
Copyright © 2020-2023  润新知