04-JavaSE [Common API、Collection、Iterator]

1.パッケージング

概念:Javaの8つの基本的なデータ型は、クラス(パッケージングクラス)としてカプセル化およびカプセル化されます。

包装

  • 8種:Byte、Short、Integer、Long、Float、Double、Character、Boolean

  • 機能:8つの基本データ型に基づくカプセル化、およびカプセル化タイプに関連するいくつかの機能を提供します

    • //Long类型的最大值:
      Long.MAX_VALUE;//使用包装类中的静态常量
      
    • 開発における役割:

      • 文字列型と基本データ型の交換を実現
  • キーポイントをマスターする:文字列型と基本データ型の間の交換

    • 基本データ型=>文字列

      • int num=100;
        String s = num+"";//最简单的方式:使用+""
        
    • 文字列=>基本データ型

      • //使用包装类对象中的静态方法:parseXxx(String s)
        String s ="3.14";
        double num = Double.parseDouble(s); 
        
  • 質問:基本的なデータ型とパッケージングクラスを相互に使用できますか?

    • 回答:はい。自動ボックス化と自動ボックス化解除

ケース整数クラス:

//构造方法
Integer num1 = new Integer(100);//num1中存储了100
Integer num2 = new Integer("123");//把字符串"123"转为整数123


//使用:(把包装当做普通的变量来使用)
num1 = num1 + 100;



//包装类可以不使用构造方法,就可以进行赋值
Integer num3 = 100;
//运算
num3 = num3 + 1;
//通常反编译查看源代码:

public class IntegerDemo1
{
    
    
	public IntegerDemo1()
	{
    
    
	}

	public static void main(String args[])
	{
    
    
        //装箱的操作:Integer类中的静态方法:valueOf(数值)
		Integer num3 = Integer.valueOf(100);
        //拆箱操作: Integer类中的方法: intValue()
		num3 = Integer.valueOf(num3.intValue() + 1);
		System.out.println(num3);
	}
}

//结论:不需要自己书写装箱和拆箱的代码
只需要把包装类类型作为普通的的数据类型使用

質問1:一般的な型のデータを文字列型に変換するにはどうすればよいですか?

最简单做法:使用+""    //任意类型的数据和字符串类型相加,结果都是String

質問2:文字列型を共通型データに変換しますか?

使用包装类中的静态方法:parseXxx(String str)
Xxx: Int、Float、Double、Long、Boolean
    示例:
        int num = Integer.parseInt("122")
        double num = Double.parseDouble("3.14");

//注意:character类中没有parseXxx()方法
String => char
    String str="a";
    char ch = a.charAt(0);

次に、Stringクラス

  • 文字列クラス:データを文字列形式で格納するために使用されます
    • インスタンス化:public String()、public String(String s)、public String(char [] chs)、..。
      • 最も簡単な方法:String s = "aaa";
    • 一般的な方法:
      • 判定方法
      • 入手方法
      • 傍受方法
      • 交換方法
      • 切断方法
      • 変換方法
String s1=" itcast ";
String s2="itcast";

boolean result = s1.equals(s2)//false 
                 s1.trim()//去除前后空格
                 s1.trim().eqauls(s2)//true
    
 //split("切割符号")
 String str="张三,23,男,2020-03-20,13800138000";
 String[] strs = str.split(",");//张三  23  男  2020-03-20   13800138000
         //strs={"张三","23","男","2020-03-20","13800138000"}

3、配列クラス

  • クラス:配列を操作するためのツールクラス
  • インスタンス化:インスタンス化する必要はありません
  • 一般的な方法:
    • 並べ替え:並べ替え(配列)
    • 配列を文字列に変換します:toString()

4つの大きな整数、大きな浮動小数点クラス

  • BigIntegerクラス

    • クラス:ビッグ整数(スーパー整数範囲の整数値を格納するために使用されます)
    • インスタンス化:BigInteger num = new BigInteger( "12312312312312313123123123132")
    • 一般的な方法:
      • 足し算、引き算、掛け算、割り算
  • BigDecimalクラス

    • クラス:大きな浮動小数点(高精度の小数を格納するために使用)
    • インスタンス化:BigDecimal num = new BigDecimal( "3213123123.123123123123123123123123123123");
    • 一般的な方法:
      • 足し算、引き算、掛け算、割り算
        • 除算:除算を使い切ることができない場合に例外が発生します
          • 解決策:除算後の小数点以下の桁数と選択方法を明確にする必要があります

5つの正規表現

正規表現:

  • 文字列が標準を満たしているかどうかを確認するためのいくつかの特定の記号の組み合わせに基づくルール
    • 例:携帯電話番号文字列、ID文字列
      • 電話番号は任意の文字を指定することはできません。電話番号の規則に従って指定する必要があります。
        • 通常:携帯電話番号の文字列を制限するためのルール

結論:正規表現は、
正規表現の文字列を操作するために使用されます

  • 役割:文字列を確認する
    • 例:プログラム内のメールボックスデータは文字列型で保存でき、文字列に保存されているメールボックスに対して定期的な検証を実行して、メールボックスが使用するデータ標準を満たしていることを確認できます。
  • 正規表現:これは、いくつかの特定の一致の組み合わせによって形成される文字列検証ルールです。
    • 文字クラス:[az]、[abc]、[a-z&[^abc]]
    • 演算子:&&、|
    • 事前定義された文字:\ d \ w。
    • 数量詞:?* + {n} {n、} {n、m}
    • グループ:(正規表現)
  • 文字列では通常のメソッドを使用できます。
    • boolean matches(String regex)//文字列が通常のルールに準拠しているかどうかを確認します
    • String [] split(String regex)//指定された正規表現に従って、文字列を切り取ります
    • 文字列replaceAll(文字列正規表現、文字列newChar)

Stringクラスのメソッド:

public boolean matches(String 正则表达式字符串) 
    //功能:用来验证字符串对象是否符合指定的正则表达式规则
    
示例:
    String s="add";
    boolean flag = s.matches("[a-z]ad");//结果:fales
System.out.print("ab\nc");//结果:ab 换行 c

//就希望输出: “ab\nc”
System.out.print("ab\\nc")
    
split("\\.")    //语法的特殊性

シックス、コレクションコレクション

組み立てのスキルを学ぶ:

  • 各コレクションオブジェクトの下部で使用されているデータ構造を把握する
    • データ構造が何であるかを理解した場合にのみ、開発中のデータを格納するためにどのコレクションを使用する必要があるかを知ることができます
  • コレクション内の関数:追加、削除、変更、チェック、トラバース

コレクション
ここに画像の説明を挿入1.コレクションの概要
これまでに学習したArrayListはコレクションであり、コレクションは複数のデータを格納できるコンテナー
です。一般的なコンテナはコレクションと配列です。

コレクションと配列の違いは何ですか?

  1. コレクションの長さは可変であり、配列の長さは不変です。
  2. コレクションは参照データ型のみを格納でき(基本的なデータ型を格納する場合は
    ボックス化する必要があります)、配列は任意の型定義を使用でき、対応する型のデータを格納できます

2.
コレクションの分類コレクションには2つの主要な分類があります。

  1. コレクション(今日の研究)
  2. マップコレクション(後で学習)
    以前に学習したArrayListは、Collectionコレクションの実装です。

3.コレクションコレクション継承システム
学習コレクションシステムでは、通常、最初にトップレベルのインターフェイスを学習します。
トップレベルインターフェイスのメソッドとサブタイプから継承されたメソッドを学習し後は、学習
を繰り返す必要はありません。
したがって、最初にコレクションコレクションを学習し、コレクションで
使用できる関数を確認します。
コレクション-一般的なメソッド
4、一般的なメソッド
public boolean add(E e):指定されたオブジェクトを現在のコレクションに追加します。
public void clear():コレクション内のすべての要素をクリアします。
public boolean remove(E e):現在のコレクション内の指定されたオブジェクトを削除します。
public boolean contains(Object obj):現在のコレクションに指定されたオブジェクトが含まれているかどうかを判別します。
public boolean isEmpty():現在のコレクションが空かどうかを判別します。
public int size():コレクション内の要素の数を返します。
public Object [] toArray():コレクション内の要素を配列に格納します

セブン、イテレータイテレータ

効果

コレクションコレクションをトラバースするために使用されます。イテレータを学習する目的は、コレクションをトラバースすることです
ここに画像の説明を挿入

イテレータを使用する手順を簡単に説明する

ここに画像の説明を挿入

1.最初にコレクションのイテレータオブジェクトを取得します

2.イテレータオブジェクトを使用してhasNext()を呼び出し、次の要素があるかどうかを判断します

3. next()メソッドが呼び出された場合は、次の要素を取得します

4.hasNextメソッドがfalseを返すまで2ステップと3ステップをループします。

イテレータの使用に関する注意
1. 当迭代器迭代元素完成后,不能继续next获取元素,
否则会报:NoSuchElementException

2. 当迭代器在使用的过程中,不能使用集合对象增删元素。会导致报错
ConcurrentModificationException。如果要删除可以使用迭代器来删除

8、forループを強化します

コレクションまたは配列をトラバースするために特に使用される、拡張されたforループ(foreach)で、基盤となる実装はイテレーターを使用します。

for(変数タイプ変数:配列/コレクション){

//情報処理

}

注:変数は各ループで取得された要素であり、変数タイプは配列またはコレクションの要素タイプです。

その後、次の要素を取得し続けることはできません。
そうしないと、次のように報告されます:NoSuchElementException

  1. イテレータが使用されている場合、コレクションオブジェクトを使用して要素を追加または削除することはできません。エラー
    ConcurrentModificationExceptionが発生します削除したい場合は、イテレータを使用して削除できます

#### 八、增强for循环

增强for循环(foreach),专门用来遍历集合或者数组,底层实现使用迭代器。



for( 变量类型 变量 : 数组/集合 ) { 

 //处理数据

}

说明:变量就是每次循环所获取的元素,变量类型就是数组或者集合的元素类型



**IDEA快速构建增强for循环:集合/数组.for** 

おすすめ

転載: blog.csdn.net/mmmmmCJP/article/details/115147468