• 集合


    1、List接口

    List有序,可以存储重复元素

    package LESSON11;
    import java.util.ArrayList;
    import java.util.Iterator;
    public class demo1 {
    //List接口实现类ArrayList
    //数组结构,查询快,增删慢
        public static void main(String[] args) {
            ArrayList list=new ArrayList();
            list.add(1);
            list.add(2.2);
            list.add("133");
            list.add('a');
            System.out.println(list);
            System.out.println(list.isEmpty());
            System.out.println(list.size());
            System.out.println(list.contains(2));
            list.remove(1);
            System.out.println(list);
                
            ArrayList list2=new ArrayList();
            list2.add("arraylist");
            list2.add("linkedlist");        
           // list.add(list2);//添加集合
            list.addAll(list2);//添加集合中的元素
            System.out.println(list);
            System.out.println(list.containsAll(list2));
    //        list.removeAll(list2);
    //        System.out.println(list);
            list.retainAll(list2);
            System.out.println(list);
                    
            ArrayList list3=new ArrayList();
            list3.add("张三");
            list3.add("李四");
            list3.add("王五");
            
            Object arr[]=list3.toArray();//返回一个数组
            for (int i = 0; i < arr.length; i++) {
    //            System.out.println(arr[i]);
            }
            
            //遍历集合中的元素
            //1 for循环
            for (int i = 0; i < list3.size(); i++) {
                System.out.println(list3.get(i));    
            }
            System.out.println("------------------");
            //2 增强for循环
            for (Object o : list3) {
                System.out.println(o);            
            }
            System.out.println("------------------");        
            //3迭代器遍历
            Iterator it= list3.iterator();//将集合中的元素返回至迭代器中
            while(it.hasNext()){//判断迭代器是否有下一个元素
                System.out.println(it.next());//返回下一个元素
                
            }                        
        }
    }
    package LESSON11;
    import java.util.LinkedList;
    public class demo2 {
        /**
        List接口实现类LinkedList
        链表结构,查询慢,增删快
         */
        public static void main(String[] args) {
            LinkedList list=new LinkedList();
            list.add("Tom");
            list.add("rose");
            list.add("jerry");
            list.add("lucy");
            System.out.println(list);
            list.addFirst("john");
            list.addLast("marry");
            System.out.println(list);
            
            Object obj1=list.removeFirst();
            Object obj2=list.removeLast();
            System.out.println(obj1);
            System.out.println(obj2);
            System.out.println(list);        
        }
    }

    2、Set接口

    package LESSON11;
    import java.util.HashSet;
    public class exercise {
        /**
         Set是一个无序的不能包含重复元素的接口。
         Set接口只包含从Collection继承过来的方法,增加了对add方法的限制,不允许有重复的元素。
         Set接口通用的实现类有HashSet、TreeSet和LinkedHashSet
         */
        public static void main(String[] args) {
            HashSet set1=new HashSet();
            HashSet set2=new HashSet();        
            String str[]={"java","html","css","js","bootstrap","html","java"};
            //把重复的元素存入一个集合,把不重复的元素存入另外一个集合
            for (int i = 0; i < str.length; i++) {    
                boolean bo=set1.add(str[i]);
                if(!bo){//如果向set1添加不成功
                    set2.add(str[i]);//将元素添加到set2集合中
                }
            }
            set1.removeAll(set2);//移除重复元素
            System.out.println(set1);//不重复的元素
            System.out.println(set2);//重复的元素
    //两种遍历方式(无get方法)
            //1 增强for循环
            for (Object o : set1) {
                System.out.println(o);            
            }
            System.out.println("------------------");        
            //2迭代器遍历
            Iterator it= set1.iterator();//将集合中的元素返回至迭代器中
            while(it.hasNext()){//判断迭代器是否有下一个元素
                System.out.println(it.next());//返回下一个元素            
            }
    HashSet set3=new HashSet();
            set3.add("张三");
            set3.add("李四");
            set3.add("王五");
            set3.add("赵六");
            System.out.println(set3);
            System.out.println(set3.contains("yan"));
            set3.remove("王五");
            System.out.println(set3);
            Object obj[]=set3.toArray();
            for (int i = 0; i <obj.length; i++) {
                System.out.println(obj[i]);
                
            }
            //set3.clear();
            HashSet set4=new HashSet();
            set4.add("张三");
            System.out.println(set3.size());
            
            set3.retainAll(set4);
            System.out.println(set3);                      
    } }

    3、Map接口

    Map接口实现类
    java.util.HashMap<K,V>     无序
    java.util.TreeMap<K,V>      有序

    package LESSON11;
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Set;
    public class demo3 {
        /**
         Map集合:以键值对形式存储
         键不能重复,值可以重复,键一旦重复,值会被覆盖
         */
        public static void main(String[] args) {
            HashMap map=new HashMap();
            map.put("1001", "张三");//向map集合添加元素
            map.put("1002", "李四");
            map.put("1003", "王五");
            map.put("1004", "赵六");
            System.out.println(map);
            System.out.println(map.get("1001"));//通过键获取到值
            map.remove("1004");//通过键移除元素
            System.out.println(map);
            System.out.println(map.size());//集合长度
            System.out.println(map.isEmpty());
            System.out.println(map.containsKey("1001"));
            System.out.println(map.containsValue("李四"));
            
            System.out.println("----------------------");
            HashMap map1 =new HashMap();
            map1.put("1001", "张三");
            map1.put("1002", "李四");
            map1.put("1003", "王五");
            Set set=map1.entrySet();//返回map集合元素至Set视图
            for (Object o : set) {
                System.out.println(o);
                
            }
            
            Set set1=map1.keySet();//返回map集合中的键至Set视图
            for (Object o : set1) {
                System.out.println(o+"="+map1.get(o));//遍历Map集合
                
            }
            System.out.println("---------------------");
            Collection coll=map1.values();//返回map集合中的键至Set视图
            for (Object o : coll) {
                System.out.println(o);            
            }
            
            HashMap map2 =new HashMap();
            map2.put("1005", "小明");
            map2.put("1006", "晓明");
            map1.putAll(map2);//添加map集合中的元素
            System.out.println(map1);
        }
    }

    4、泛型

    泛型就是广泛的数据类型

    好处:无需转型

    泛型类

    泛型方法

    泛型接口

    package LESSON11;
    import java.util.ArrayList;
    import java.util.HashMap;
    class User{
        String name;
        public User(String name) {
            this.name=name;
        }
        
    }
    public class demo4{
        
        public static void main(String[] args) {
            
             ArrayList<Integer> list=new ArrayList<Integer>();
             list.add(123);
             list.add(456);
             
             HashMap<String, String> map= new HashMap<String, String>();
             map.put("1001", "杨园园");
             map.put("1002", "詹三");
            
             ArrayList<User> list2=new ArrayList<User>();
             list2.add(new User("战狼"));
             list2.add(new User("亮剑"));
             list2.add(new User("雪豹"));
             
             for (int i = 0; i < list2.size(); i++) {
                 System.out.println(list2.get(i).name);
                
            }             
        }
    
    }
    package LESSON11;
    
    //泛型接口
    interface A<F>{
        public F create(F f);
        
    }
    class Admin{
        String name;
    }
    class B implements A<Admin>{
        @Override
        public Admin create(Admin admin) {
            // TODO Auto-generated method stub
            return admin;
        }
    }
    //泛型类
    public class demo6<T> {
        public T t;
        
        //泛型方法
        public T test(){
            return t;
        }
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            demo6<Double> demo=new demo6<Double>();
            demo.t=3.14;
            demo.test();
    
        }
    
    }

     5、工具类

    Collections工具类和Arrays工具类

    package LESSON11;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;//导入工具类的包,不是Collection,Collection是集合
    import java.util.List;
    
    public class demo5 {
    
        public static void main(String[] args) {
            /**
        Collections提供了集合操作的常用算法,这些算法都以静态方法的形式提供,
        这些静态方法的第一个参数都是需要对其操作的集合。
             */
            ArrayList<Integer> list=new ArrayList();
            list.add(11);
            list.add(3);
            list.add(2);
            list.add(44);
            list.add(88);
            Collections.sort(list);//排序,默认升序
            Collections.reverse(list);//反转集合中的顺序
            System.out.println(list);
            Collections.shuffle(list);//随机排序
            System.out.println(list);
            System.out.println(Collections.max(list));//查找极大值
            System.out.println(Collections.min(list));//查找极小值
            System.out.println();
            
            
            /*Arrays
             * 此类包含用来操作数组(比如排序和搜索)的各种方法。*/
            int a[]={22,11,55,33,66};
            Arrays.sort(a);//排序,默认升序
            
            List<int[]> list2=Arrays.asList(a);//返回一个受指定数组支持的固定大小的列表。
            //System.out.println(list2);//集合地址 [[I@1e58cb8]
            for (int i = 0; i < list2.size(); i++) {
                for (int j = 0; j < a.length; j++) {
                    //System.out.println(list2.get(i));//数组地址 [I@1e58cb8
                    System.out.println(list2.get(i)[j]);//遍历集合中的数组
                }
                
            }
            System.out.println();
            int a2[]=Arrays.copyOf(a, 3);//复制数组
            for (int i = 0; i < a2.length; i++) {
                System.out.println(a2[i]);
            }
            
            Arrays.fill(a2, 100);//初始化数组
            for (int i = 0; i < a2.length; i++) {
                System.out.println(a2[i]);//全为100.
            }
    
    
        }
    
    }



  • 相关阅读:
    负载均衡——LVS DR模式
    Java之BigDecimal详解
    Spring AOP代理对象创建流程
    spring aop切面不生效
    aspectj-autoproxy Controller未生效解决方案
    jvm参数分类
    dubbo优雅停机
    Dubbo 协议注意项
    dubbo provider
    查找java_home的安装路径
  • 原文地址:https://www.cnblogs.com/qfdy123/p/10986301.html
Copyright © 2020-2023  润新知