举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > java中特殊的类 Java 特殊类型映射

java中特殊的类 Java 特殊类型映射

2023-05-29 01:20 Java教程

java中特殊的类 Java 特殊类型映射

java中特殊的类

Java中特殊的类是指在Java语言中,由Java虚拟机或者Java类库定义的一些特殊的类,它们可以帮助开发者实现一些特殊的功能。这些特殊的类包括Object、String、Class、Thread、System和Math等。

Object 类是 Java 语言中所有类的根基,所有其他类都直接或间接地从 Object 类继承而来。Object 类定义了一些基本方法,如 equals()、hashCode() 和 toString() 等,这些方法可以用来判断两个对象是否相同,或者将对象转化为字符串形式。

String 类是 Java 中最常用的一个特殊类,它表示字符串数据。String 的内部使用 char 数组来存储字符串数据,并提供了大量方法来处理字符串数据,如 length() 方法可以返回字符串长度;charAt() 方法可以返回字符串中的单个字符;substring() 方法可以返回子字符串。

Class 类表征 Java 虚拟机中的一个已加载的 Java 类或者接口。Class 对象封装了关于 Java 类和对象信息(如名字、修饰器、方法列表、域列表、实例数量和内部代理对象列表)。通过 Class 对象可以创建新实例并通过反射 API 运行时加载新代理对象。

Thread 用来表征一条执行流在 Java 虚拟机中的执行情况。Thread 可以通过 start() 来启动新的执行流并通过 join() 来阻止当前执行流直到新启动的执行流完成其工作之前。Thread 也可以使用 sleep() 来休眠当前执行流一定时间并使用 interrupt() 来中断当前正在休眠的执行流。

public class MyThread extends Thread {

    public void run(){

        // do something here

    }
}  

System 用来封装 Java 虚拟机内部信息并提供一些常用方法来处理诸如 I/O 流、内存分配和时间处理之类的问题。System 也包含几个常量如 System.out 和 System.err (标准 I/O 输出流), System.in (标准 I/O 输入流)

Java 特殊类型映射

Java集合教程 - Java特殊类型映射


已排序的映射

分类映射按顺序保存映射条目。

它基于键对映射条目进行排序从代码中的 Comparable 接口a Comparator 对象。

如果键实现 Comparable 接口并且您使用 Comparator 对象, Comparator 对象会做排序。

SortedMap 接口继承了Map接口表示排序的映射。

Comparator comparator()
返回用于在SortedMap中进行自定义排序的 Comparator 对象。

K firstKey()返回SortedMap中第一个条目的键。如果SortedMap为空,它会抛出一个 NoSuchElementException

SortedMap headMap(K toKey)返回其条目的SortedMap的视图将具有小于指定的toKey的键。视图由原始SortedMap支持。

K lastKey()返回SortedMap中最后一个条目的键。如果SortedMap为空,它会抛出一个NoSuchElementException异常。

SortedMap subMap(K fromKey,K toKey)返回SortedMap的视图其条目将具有从指定的键fromKey(包含)和toKey(exclusive)。

SortedMap tailMap(K fromKey)返回其条目的SortedMap的视图将具有等于或大于指定的fromKey的密钥。

TreeMap 类是实现类 SortedMap 界面。下面的代码演示了如何使用 SortedMap

import java.util.SortedMap;
import java.util.TreeMap;

public class Main {
  public static void main(String[] args) {
    SortedMap<String, String> sMap = new TreeMap<>();
    sMap.put("CSS", "style");
    sMap.put("HTML", "mark up");
    sMap.put("Oracle", "database");
    sMap.put("XML", "data");

    SortedMap<String, String> subMap = sMap.subMap("CSS", "XML");
    System.out.println(subMap);

    // Get the first and last keys
    String firstKey = sMap.firstKey();
    String lastKey = sMap.lastKey();
    System.out.println("First Key:  " + firstKey);
    System.out.println("Last key:   " + lastKey);
  }

}

上面的代码生成以下结果。


SortedMap与Comparator

要使用 Comparator 对象对 SortedMap 中的条目进行排序,使用 TreeMap 类的构造函数以 Comparator 作为参数。

以下代码显示了如何对基于排序映射的条目进行排序在他们的钥匙的长度随后按字母顺序键忽略情况:

import java.util.Comparator;
import java.util.SortedMap;
import java.util.TreeMap;

public class Main {
  public static void main(String[] args) {
    Comparator<String> keyComparator  = 
        Comparator.comparing(String::length).thenComparing(String::compareToIgnoreCase); 
    
    SortedMap<String, String> sMap = new TreeMap<>(keyComparator);
    sMap.put("CSS", "style");
    sMap.put("HTML", "mark up");
    sMap.put("Oracle", "database");
    sMap.put("XML", "data");

    SortedMap<String, String> subMap = sMap.subMap("CSS", "XML");
    System.out.println(subMap);

    // Get the first and last keys
    String firstKey = sMap.firstKey();
    String lastKey = sMap.lastKey();
    System.out.println("First Key:  " + firstKey);
    System.out.println("Last key:   " + lastKey);
  }

}

上面的代码生成以下结果。


可导航映射由 NavigableMap 界面的实例表示。

它通过添加方法来扩展 SortedMap 接口对于键的最接近的匹配,以相反的顺序获得映射的视图等。

TreeMap类是NavigableMap接口的实现类。

以下代码显示如何使用 NavigableMap

import java.util.Map.Entry;
import java.util.NavigableMap;
import java.util.TreeMap;

public class Main {
  public static void main(String[] args) {

    NavigableMap<String, String> nMap = new TreeMap<>();
    nMap.put("CSS", "style");
    nMap.put("HTML", "mark up");
    nMap.put("Oracle", "database");
    nMap.put("XML", "data");
    System.out.println("Navigable Map:" + nMap);

    Entry<String, String> lowerXML = nMap.lowerEntry("XML");
    Entry<String, String> floorXML = nMap.floorEntry("XML");
    Entry<String, String> higherXML = nMap.higherEntry("XML");
    Entry<String, String> ceilingXML = nMap.ceilingEntry("XML");

    System.out.println("Lower:" + lowerXML);
    System.out.println("Floor:" + floorXML);
    System.out.println("Higher:" + higherXML);
    System.out.println("Ceiling:" + ceilingXML);

    // Get the reverse order view of the map
    NavigableMap<String, String> reverseMap = nMap.descendingMap();
    System.out.println("Navigable Map(Reverse  Order):" + reverseMap);

  }

}

上面的代码生成以下结果。

并发映射

ConcurrentMap 允许我们在不锁定映射的情况下执行并发操作。

我们可以在使用其实现类创建并发映射时选择并发级别。

ConcurrentHashMap类是ConcurrentMap接口的实现类。 它们都在java.util.concurrent包中。

import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;

public class Main {
  public static void main(String[] args) {
    ConcurrentMap<String, String> cMap = new ConcurrentHashMap<>();
    cMap.put("A", "A");

    System.out.println("Concurrent Map: " + cMap);

    System.out.println(cMap.putIfAbsent("A", "1"));
    System.out.println(cMap.putIfAbsent("B", "B"));
    System.out.println(cMap.remove("A", "B"));
    System.out.println(cMap.replace("A", "B"));

    System.out.println("Concurrent Map: " + cMap);
  }
}

上面的代码生成以下结果。

阅读全文
以上是名动网为你收集整理的java中特殊的类 Java 特殊类型映射全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们