ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

韫钰的笔记 -- java高级特性--集合框架

2021-11-25 23:05:44  阅读:147  来源: 互联网

标签:java -- System 笔记 mp key println public out


1、集合框架

Collection接口

Collection接口,定义所有单例集合共性的方法,下面有两个子接口,一个是List接口,一个是Set接口。

List接口

List接口,其下面主要实现类有Vector集合,ArrayList集合,LinkedList集合,底层实现方式有数组,也有链表,它有如下特点: (1)有序的集合,即存储和取出元素的顺序相同 (2)允许存储重复的元素 (3)有索引,可以使用普通的for循环遍历

Set接口

Set接口,其下面主要的实现类有TreeSet集合,HashSet集合,还有LinkedHashSet集合,前两者是无序的集合,最后一个是有序的集合,它有如下特点: (1)不允许存储重复的元素 (2)没有索引,不能使用普通的for循环遍历

Collection接口中常用方法

collection集合中共性的方法,可以在java.util.Collection中查看,一共有如下7个,针对不同的实现类,都可以使用这7个方法。

  1. public boolean add(E e):添加一个元素

  2. public void clear():清空集合中所有的元素

  3. public boolean remove(E e):移除集合中指定的元素

  4. public boolean contains(E e):检查集合中是否包含指定的对象

  5. public boolean isEmpty():判断集合是否为空

  6. public void size():判断集合中元素的个数

  7. public Object[] toArray():把集合元素存储到数组中

案例

  //增强for循环输出
        for (Object obj : list){
            Student test = (Student) obj;
            System.out.println("姓名:"+test.getName());
        }
  
 //迭代器的使用iterator
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){
            Student next = (Student)iterator.next();//一定要记得类型转换,使用泛型后就不需要强转
            System.out.println("id"+next.getId()+",姓名:"+next.getName()+",工资:"+next.getMoney());
        }

ArrayList 和LinkedList的区别和共同点

共同点:都继承于collection,有着共同的一些方法,比如add、size、remove等等

ArrayList:有序不重复类似于排队,适合查询

LinkedList:有序可重复类似于链子。适合添加删除

Map集合

       Map<String,String> mp = new HashMap<String,String>();
        mp.put("zhangsan","张三");
        mp.put("lisi","李四");
        mp.put("wangwu","王五");
        mp.put("zhaoliu","赵六");
        System.out.println(mp.size());
        //通过key值返回value值,注意返回的是Object,需要强转
        String  name = mp.get("zhaoliu");
        System.out.println(name);
        //找不到就返回null
        String  aaa = mp.get("aa");
        System.out.println(aaa);
        //判断是否有某个key用containsKey方法
        System.out.println("是否有:"+mp.containsKey("zhangsan"));
        System.out.println("是否有:"+mp.containsKey("wenyu"));
        //删除,会把键值对都删除
        mp.remove("zhangsan");
        System.out.println("是否有:"+mp.containsKey("zhangsan"));
        //返回键、值、键值对的方法
        System.out.println(mp.keySet());
        System.out.println(mp.values());
        System.out.println(mp);
​
        System.out.println("============================");
        //遍历Map集合
        //1.增强for循环遍历
        for (String key : mp.keySet()){//获取Map里面每一个key
            String value = mp.get(key);//根据key遍历value
            System.out.println(key+"------"+value);
        }
​
        System.out.println("============================");
        //2.迭代器Interator来遍历Map集合
        Iterator<String> iterator = mp.keySet().iterator();
        while (iterator.hasNext()){
            String key = iterator.next();//获取Map里面每一个key
            String value = mp.get(key);//根据key遍历value
            System.out.println(key+"------"+value);
        }
        System.out.println("============================");
        //3.直接遍历Map
        Set<Map.Entry<String,String>> set = mp.entrySet();
        for (Map.Entry<String,String> me : set){
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key+"------"+value);
        }

Collections工具类

//sort方法进行元素升序排列
        Collections.sort(list);
        for (String z : list){
            System.out.println(z);
        }
        System.out.println("##########################");
        //max\min方法进行元素升序排列
        System.out.println("max:"+Collections.max(list));
        System.out.println("max:"+Collections.min(list));
        //binarySearch方法查看元素是否存在
        System.out.println(Collections.binarySearch(list,"fee"));//有的话返回元素下标
​
        System.out.println("##########################");
        //reverse方法反转类容
        Collections.reverse(list);
        for (String z : list){
            System.out.println(z);
        }

Collections自定义比较

//1、先实现 Comparable接口
public class Student implements Comparable{
    
//2、重写compareTo接口
    public int compareTo(Object o) {
     //自定义比较规则 例如:如下
        Student st = (Student)o;
        if (this.no==st.no){
            return 0;
        }else if(this.no>st.no){
            return 1;
        }else if(this.no<st.no) {
            return -1;
        }
    }

枚举

//1、定义
public class Demo2 {
    //定义枚举内容
    public enum leve{
        男,女
    }
}
​
//2、应用
   public class Demo2 {
    public sexa sex;
    public static void main(String[] args) {
        Student student = new Student();
        student.sex = "男";//只能写男和女否则报错
     }
   }

包装类

名称:除了char转成包装类名字变成Character ,和int变成Integer,其它都是首字母大写!比如Boolean

方法:

//1、xxxvalue:把包装类型转成基本类型  
Integer i = new Integer(100);
int iNum = i.intValue();//此时iNum有变成基本数据类型
​
//2、toSting:把基本类型变成字符串
   //方法一
    boolean i = true;
    String iNum = Boolear.toSting(i);//此时iNum有变成字符串
  //方法二
     String iNum = true+""  //会自动强转
         
//注意:下面方法Character 没有这个方法
//3、parsexxx():把字符串变为基本数据类型     注意:Character 没有这个方法
   int num = Integer.parseint("36")   //此时num有变成基本数据类型   
 
//4、valueOf() 把基本类型转化成包装类
   Integer i = Integer.valueOf(100);      //此时i有变成包装数据类型
​
//boolean转换不是true的大小写字符统统算转成false
//转换错误会报NumberFormatException错误

未完待续。。

                          个人笔记--也摘抄了来自个网站的资源和自己总结

                                              感谢默默的陪伴

标签:java,--,System,笔记,mp,key,println,public,out
来源: https://blog.csdn.net/qq_51034633/article/details/121549744

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有