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

Java集合与常用类

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

Java集合与常用类

❶集合 一、Set 1、HashSet

特点:

  • HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
  • HashSet 允许有 null 值。
  • HashSet 是无序的,即不会记录插入的顺序。
  • HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
  • HashSet 实现了 Set 接口。

方法:

  • 添加元素   add() 方法
  • 判断元素是否存在   contains() 方法

  • 删除元素   remove() 方法

  • 计算大小   size() 方法

// 引入 HashSet 类      
import java.util.HashSet;

public class RunoobTest {
    public static void main(String[] args) {
    HashSet sites = new HashSet();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Runoob");  // 重复的元素不会被添加
        
        System.out.println(sites);   
        //输出  [Google, Runoob, Zhihu, Taobao]

        System.out.println(sites.contains("Taobao"));
        //输出  true

        sites.remove("Taobao");  // 删除元素,删除成功返回 true,否则为 false
        System.out.println(sites);
        //输出  [Google, Runoob, Zhihu]

        System.out.println(sites.size());
        //输出  3
    }
}

二、Map 1、HashMap

特点:

  • HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
  • HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
  • HashMap 是无序的,即不会记录插入的顺序。
  • HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。

方法:

  • 添加元素   put() 方法
  • 访问元素   get() 方法

  • 删除元素   remove() 方法

  • 计算大小   size() 方法

// 引入 HashMap 类      
import java.util.HashMap;

public class RunoobTest {
    public static void main(String[] args) {
        // 创建 HashMap 对象 Sites
        HashMap Sites = new HashMap();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");

        System.out.println(Sites);
        //输出  {1=Google, 2=Runoob, 3=Taobao, 4=Zhihu}

        System.out.println(Sites.get(3));
        //输出  Taobao

        Sites.remove(4);
        System.out.println(Sites);
        //输出  {1=Google, 2=Runoob, 3=Taobao}

        System.out.println(Sites.size());
        //输出  3
    }
}
三、List 1、ArrayList

特点:

  • ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
  • ArrayList 继承了 AbstractList ,并实现了 List 接口。

方法:

  • 添加元素   add() 方法
  • 访问元素   get() 方法

  • 修改元素   set() 方法

  • 删除元素   remove() 方法

  • 计算大小   size() 方法

import java.util.ArrayList;

public class RunoobTest {
    public static void main(String[] args) {
        ArrayList sites = new ArrayList();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Weibo");

        System.out.println(sites);
        //输出  [Google, Runoob, Taobao, Weibo]

        System.out.println(sites.get(1));  // 访问第二个元素
        //输出  Runoob

        sites.set(2, "Wiki"); // 第一个参数为索引位置,第二个为要修改的值
        System.out.println(sites);
        //输出  [Google, Runoob, Wiki, Weibo]

        sites.remove(3); // 删除第四个元素
        System.out.println(sites);
        //输出  [Google, Runoob, Wiki]
        
        System.out.println(sites.size());
        //输出  3
    }
}
2、LinkedList

特点:

  • Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。
  • 与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。

方法:

  • 在头部添加元素   addFirst() 方法
  • 在尾部添加元素   addLast() 方法
  • 移除头部元素   removeFirst() 方法
  • 移除尾部元素   removeLast() 方法
  • 获取头部元素   getFirst() 方法
  • 获取尾部元素   getLast() 方法
// 引入 LinkedList 类
import java.util.LinkedList;

public class RunoobTest {
    public static void main(String[] args) {
        LinkedList sites = new LinkedList();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        
        sites.addFirst("Wiki");   // 使用 addFirst() 在头部添加元素               
        sites.addLast("Weibo");   // 使用 addLast() 在尾部添加元素
        System.out.println(sites);
        //输出  [Wiki, Google, Runoob, Taobao, Weibo]
        
        sites.removeFirst();   // 使用 removeFirst() 移除头部元素        
        sites.removeLast();   // 使用 removeLast() 移除尾部元素
        System.out.println(sites);
        //输出  [Google, Runoob, Taobao]
       
        System.out.println(sites.getFirst());   // 使用 getFirst() 获取头部元素
        //输出  Google

        System.out.println(sites.getLast());   // 使用 getLast() 获取尾部元素
        //输出  Taobao
    }
}

❷常用类 一、Object

Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法。

1、方法
  • protected Object clone() 创建并返回一个对象的拷贝
  • boolean equals(Object obj) 比较两个对象是否相等
  • protected void finalize() 当 GC (垃圾回收器)确定不存在对该对象的有更多引用时,由对象的垃圾回收器调用此方法。
  • Class getClass() 获取对象的运行时对象的类
  • int hashCode() 获取对象的 hash 值
  • void notify() 唤醒在该对象上等待的某个线程
  • void notifyAll() 唤醒在该对象上等待的所有线程
  • String toString() 返回对象的字符串表示形式
  • void wait() 让当前线程进入等待状态。直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。
  • void wait(long timeout) 让当前线程处于等待(阻塞)状态,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过参数设置的timeout超时时间。
  • void wait(long timeout, int nanos) 与 wait(long timeout) 方法类似,多了一个 nanos 参数,这个参数表示额外时间(以纳秒为单位,范围是 0-999999)。 所以超时的时间还需要加上 nanos 纳秒。。

二、String

在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

1、创建字符串
String s1 = "Taobao";              // String 直接创建

String s2 = new String("Taobao");   // String 对象创建
2、方法
  • int compareTo(String anotherString)  按字典顺序比较两个字符串。
  • String concat(String str)  将指定字符串连接到此字符串的结尾。
  • static String copyValueOf(char[] data)  返回指定数组中表示该字符序列的 String。
  • boolean equalsIgnoreCase(String anotherString)  将此 String 与另一个 String 比较,不考虑大小写。
  • byte[] getBytes()  使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
  • int length()  返回此字符串的长度。
  • char[] toCharArray()  将此字符串转换为一个新的字符数组。
  • String toLowerCase()  使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
  • String toString()  返回此对象本身(它已经是一个字符串!)。
  • String toUpperCase()  使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
  • isEmpty()  判断字符串是否为空。

三、StringBuilder

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

public class RunoobTest{
    public static void main(String args[]){
        StringBuilder sb = new StringBuilder(10);
        sb.append("Taobao..");

        System.out.println(sb);  
        //输出  Taobao..

        sb.append("!");
        System.out.println(sb); 
        //输出  Taobao..!

        sb.insert(8, "Java");
        System.out.println(sb); 
        //输出  Taobao..Java!

        sb.delete(5,8);
        System.out.println(sb);  
        //输出  TaobaJava!
    }
}
四、StringBuffer

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。

1、方法
  • public StringBuffer append(String s)  将指定的字符串追加到此字符序列。
  • public StringBuffer reverse()  将此字符序列用其反转形式取代。
  • public delete(int start, int end)  移除此序列的子字符串中的字符。
  • public insert(int offset, int i)  将 int 参数的字符串表示形式插入此序列中。
  • insert(int offset, String str)  将 str 参数的字符串插入此序列中。
  • replace(int start, int end, String str)  使用给定 String 中的字符替换此序列的子字符串中的字符。
public class Test{
  public static void main(String args[]){
    StringBuffer sBuffer = new StringBuffer("百度官网:");
    sBuffer.append("www");
    sBuffer.append(".baidu");
    sBuffer.append(".com");
    System.out.println(sBuffer);
    //输出  百度官网:www.baidu.com  
  }
}
五、System

System类是一些与系统相关的属性和方法的集合,而且在System类中所有的属性都是静态的,要想引用这些属性和方法,直接使用System类调用即可。

1、方法
  • public static void exit(int status)  系统退出 ,如果status为0就表示退出。
  • public static void gc()   运行垃圾收集机制,调用的是Runtime类中的gc方法。
  • public static long currentTimeMillis()  返回以毫秒为单位的当前时间。
  • public static void arraycopy(Object src,int srcPos, Object dest,int desPos,int length) 数组拷贝操作
  • public static Properties getProperties() 取得当前系统的全部属性。
  • public static String  getProperty(String key) 根据键值取得属性的具体内容。
六、Data 1、方法
  • boolean after(Date date)  若当调用此方法的Date对象在指定日期之后返回true,否则返回false。
  • boolean before(Date date)  若当调用此方法的Date对象在指定日期之前返回true,否则返回false。
  • int compareTo(Date date)  比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
  • boolean equals(Object date)  当调用此方法的Date对象和指定日期相等时候返回true,否则返回false。
  • long getTime( )  返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
  • String toString( )  把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
2、获取当前日期时间

使用 Date 对象的 toString() 方法来打印当前日期和时间

import java.util.Date;
  
public class DateDemo {
   public static void main(String[] args) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用 toString() 函数显示日期时间
       System.out.println(date.toString());
   }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998855.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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