栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java集合与常用类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java集合与常用类

文章目录
    • `java`集合
      • 1.`Collection`
        • 1.1`Iterator`
        • 1.2.`List`接口
          • 1.2.1`ArrayList`
          • 1.2.2`LinkedList`双端链表
          • 1.2.3使用`ArrayList`与`LinkedList`
          • 1.2.4 `ArrayList`多线程的使用
        • 1.3.`Set`接口
          • 1.3.1`Hashset`
      • 2.`Map`
        • 2.1`HashMap`
    • `Java`常用类
      • 1.`Object` 类
      • 2.`String`及其分支
      • 3.`System`类
      • 4.`Date`日期类

java集合 1.Collection
  • Collection层次结构中的根接口,简单来说就是可foreach遍历。下面主要的两个集合类:
    • List(可以重复数据,通常是有顺序的)
    • Set(像数学的集合,元素不重合,也没有序号)
1.1Iterator
  • 特点:Iterator 只能单向遍历,但线程安全。

    • 遍历:

    • public static void main(String[] args) {
          ArrayList l1 = new ArrayList<>();
          for (int i = 0; i < 10; i++) {
              l1.add(String.valueOf(i));
          }//添加元素
          Iterator iterator = l1.iterator();//获取迭代器	
          while(iterator.hasNext()){//调用hasNext()往下遍历
              System.out.println(iterator.next());//输出数据
          }
      }
      
    • 注:当集合的结构发生改变时(比如在迭代的时候删除或增加了元素),迭代器必须重新获取,否则会出现异常

1.2.List接口
  • 常用方法:

    • 方法名效果
      isEmpty判断非空
      indexOf寻找下标
      contains是否包含某个元素
      iterator获取迭代器
      clear清空元素
      clone拷贝一个对象,是浅拷贝
      size大小
      toArray转成数组
      hashCodehashcode值
1.2.1ArrayList
  • 常用方法
  • 增:add。
  • 删:remove。
  • 改:set。
  • 查:get。
1.2.2LinkedList双端链表
  • 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。
  • 增:add, offer, push。
  • 删:poll, pop, remove。
  • 改:set。
  • 查:get, peek。
  • 当然还有很多变种的,结尾加 First, Last 即可。
1.2.3使用ArrayList与LinkedList
  • 以下情况使用 ArrayList :

    • 频繁访问列表中的某一个元素。

    • 只需要在列表末尾进行添加和删除元素操作。

  • 以下情况使用 LinkedList :

    • 你需要通过循环迭代来访问列表中的某些元素。

    • 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。

1.2.4 ArrayList多线程的使用
  • 可以通过 Collections.synchronizedList 方法,将 arrayList转换为线程安全的 list。

  • ArrayList arrayList = new ArrayList<>();
    List list = Collections.synchronizedList(arrayList);
    
1.3.Set接口

常用方法:

  • 方法名效果
    isEmpty判断非空
    contains是否包含某个元素
    iterator获取迭代器
    clear清空元素
    clone拷贝一个对象,是浅拷贝
    size大小
    toArray转成数组
    hashCodehashcode值
  • 特点:增删方法都是 add, remove。没有改查方法。

1.3.1Hashset
  • 特点:
    • HashSet 基于 HashMap 来实现的,是一个无重复元素的集合。
    • HashSet 允许有 null 值。
    • HashSet 是无序的,即不会记录插入的顺序。
    • HashSet 是线程不安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
2.Map
  • Map是一种键-值映射表
  • Map集合中key是唯一的,即所有键值对的key部分都不相同。
  • Map接口和Collection接口没有继承关系。
2.1HashMap
  • 增:put。
  • 删:remove。
  • 改:replace。
  • 查:get, getOrDefault, containsKey, containsValue。
  • 其他常用方法:entrySet, keySet, values, isEmpty, contains, iterator, clear, clone, size, hashCode。
Java常用类 1.Object 类
  • Object类是所有类的父类(隐藏),他下面的所有方法,其他的类都可以调用

  • public final native Class getClass()//获取他的类的类型
    
    public native int hashCode()//获取hashcode码
    
    public boolean equals(Object obj)//判断两个obj属性是不是相等
    
    protected native Object clone()//浅拷贝
    
    public String toString()//转成String字符串
    
2.String及其分支
  • 常用方法:

    • length() //获取字符串的长度
      charAt() //截取一个字符
      getChars()//截取多个字符
      getBytes()//替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()。
      toCharArray() //String转换成char数组
      compareTo()//比较字符串
      
      indexOf()//indexOf() 查找字符或者子串第一次出现的地
      lastIndexOf()//lastIndexOf() 查找字符或者子串是后一次出现的地方。
      
      substring() //两种形式 1:String substring(int startIndex)
                  //		  2:String substring(int startIndex,int endIndex)
      replace()   //替换
      trim()      //去掉起始和结尾的空格
          
      toLowerCase() //转换为小写
      toUpperCase() //转换为大写
      
  • 特点

    • String类长度是不可变的,StringBuffer和StringBuilder类长度是可以改变的;

    • StringBuffer类是线程安全的,StringBuilder不是线程安全的(意味着快);

    • 特别注意String是引用类型,传地址,而且因为常量池的原因,String创建对于相同的字符串是不会直接新建的,而是指向已有的地址

  • 字符串的创建

    • public static void main(String[] args) {
          String a = new String("");
          StringBuffer b =new StringBuffer("");
          StringBuilder c =new StringBuilder("");
      }
      
3.System类
  • 不可实例化的System类

  • 常用方法:

    • arraycopys数组拷贝

      public static void main(String[] args) {
      
          int[] arr1 = { 0, 1, 2, 3, 4 };
          int[] arr2 = { 9, 9, 9, 9, 9 };
      
          System.arraycopy(arr1, 2, arr2, 0, 3);
      
          arr1[3] = 8;
      
          for (int i = 0; i < 5; i++)
              System.out.print(arr2[i] + " ");
          //2 3 4 9 9 
      }
      
    • currentTimeMillis毫秒数

    • //现在常用于计时
      public static void main(String[] args) {
          long start = System.currentTimeMillis();
          for (int i = 0; i < 100000; i++) {
              String hello = new String("hello");
          }
          long end = System.currentTimeMillis();
          long time = end-start;
          System.out.println(time);
      }
      
    • exit退出虚拟机

4.Date日期类
  • 最常用就是通过Util包下的Date类和Text包下的SimpleDateFormat来表示当前的日期

    • public static void main(String[] args) throws ParseException {
          Date date = new Date();
          System.out.println(date.getTime());
          SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//以什么样的形式来格式化
          SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
          String format = sdf1.format(date);
          String format2 = sdf2.format(date);
          System.out.println(format);//结果2022年06月28日 14时53分30秒
          System.out.println(format2);//结果2022年06月28日
      }
      
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999464.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号