美文网首页
Java基础方法10(集合)

Java基础方法10(集合)

作者: 页川叶川 | 来源:发表于2019-03-26 00:09 被阅读0次

    1.Set集合

    import java.util.Iterator;
    import java.util.TreeSet;
    public class UpdateStu implements Comparable<Object>{  //创建类实现Comparable接口
        String name;                            
        long id;
        public UpdateStu(String name, long id) {            //构造方法
            this.id = id;
            this.name = name;   
        }
        public int compareTo(Object o) {
            UpdateStu upstu = (UpdateStu)o;
            int result = id>upstu.id?1:(id==upstu.id?0:-1);    //参照代码说明
            return result;      
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public long getId() {
            return id;
        }
        public void setId(long id) {
            this.id = id;
        }
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            UpdateStu stu1 = new UpdateStu("李同学",01011);  
            UpdateStu stu2 = new UpdateStu("陈同学",01021);  //参照代码说明
            UpdateStu stu3 = new UpdateStu("王同学",01051);
            UpdateStu stu4 = new UpdateStu("马同学",01012);
            TreeSet<UpdateStu> tree = new TreeSet<>();
            tree.add(stu1);                                //向集合添加对象
            tree.add(stu2);
            tree.add(stu3);
            tree.add(stu4);
            Iterator<UpdateStu> it = tree.iterator();   //Set集合中所有对象的迭代器
            System.out.println("Set集合中的所有元素:");;
            while(it.hasNext()) {                            //遍历集合
                UpdateStu stu = (UpdateStu)it.next();
                System.out.println(stu.getId()+" "+stu.getName());
            }
            it = tree.headSet(stu2).iterator();           
    //截取排在stu2对象之前的对象
            System.out.println("截取前面部分的集合: ");
            while(it.hasNext()) {                          //遍历集合
                UpdateStu stu = (UpdateStu)it.next();
                System.out.println(stu.getId()+" "+stu.getName());
            }
            it = tree.subSet(stu2, stu3).iterator();       
    //截取排在stu2与stu3之间的对象
            System.out.println("截取中间部分的集合:");
            while(it.hasNext()) {                          //遍历集合
                UpdateStu stu = (UpdateStu)it.next();
                System.out.println(stu.getId()+" "+stu.getName());
            }
            
        }
    }
    

    2.List集合

        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        int i = (int)(Math.random()*list.size());
        System.out.println("随机获取数组中的元素:"+list.get(i));
        list.remove(2);
        System.out.println("将索引是'2'的元素从数组中移除后,数组中的元素是:");
            for(int j=0; j<list.size(); j++) {
                System.out.println(list.get(j));
            }
    

    3.Collection接口

    Collection<String> list = new ArrayList<>();
            list.add("a");                        //向集合添加数据
            list.add("b");
            list.add("c");
            Iterator<String> it = list.iterator();//创建迭代器
            while(it.hasNext()) {
                String str = (String)it.next();   //获取集合中的元素
                System.out.println(str);
            }
    

    Comparator接口与Comparable接口

    • Comparable和Comparator都是用来实现集合中元素的比较、排序的。
    • Comparable是在集合内部定义compareTo()方法实现排序功能,位于java.lang包下。
    • Comparator是在集合外部实现排序功能,位于java.util包下。

    实例:

    ** Comparable: **
    // 实现Comparable接口要覆盖compareTo方法, 在compareTo方法里面实现比较:
    public class Person implements Comparable {
         private int age;
         public int compareTo(Person that) {
              if(this.age > that.age) return +1;
              if(this.age < that.age) return -1;
              return 0;                     // 返回age的比较结果.
         }
    }
    // 这时我们可以直接用 Collections.sort( personList ) 对其排序了.
    
    **********************************************************************
    
    **Comparator:**
    // 实现Comparator需要覆盖 compare 方法:
    public class Person{
         int age;
    }
    
    class PersonComparator implements Comparator { 
         public int compare(Person one, Person another) {
              if(this.age > that.age) return +1;
              if(this.age < that.age) return -1;
              return 0;                     // 返回age的比较结果.
         }
    }
    // Collections.sort( personList , new PersonComparator()) 可以对其排序
    

    文集推荐:

    Java基础方法集1
    Python基础知识完整版
    Spring Boot学习笔记
    Linux指令进阶
    Java高并发编程
    SpringMVC基础知识进阶
    Mysql基础知识完整版
    健康管理系统学习花絮(学习记录)
    Node.js基础知识(随手笔记)
    MongoDB基础知识
    Dubbo学习笔记
    Vue学习笔记(随手笔记)

    声明:发表此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本我们(QQ:981086665;邮箱:981086665@qq.com)联系联系,我们将及时更正、删除,谢谢。

    相关文章

      网友评论

          本文标题:Java基础方法10(集合)

          本文链接:https://www.haomeiwen.com/subject/yboivqtx.html