JAVAジェネリックと共通のデータ構造とコレクション

一般的な共通のデータ構造とコレクション


 

コレクション&イテレータ

  図セット・アーキテクチャ

  異なるデータ構造(データの格納方法組織、)に、それは私たちのためのjavaの異なるセットを提供します

  その機能の異なるセットは、似ているの抽出、共通の抽出を維持します

 

一般的に使用される機能のコレクション

ブールの追加(オブジェクトE):要素のコレクションに追加された
 、ボイド)をクリア(:クリアすべての要素がセット
 ブール(オブジェクトO)含まれています。コレクションは要素含まれているかどうかを決定する
 ブール)のisEmptyを(:要素の決定のセットは空です
 ブール削除(物体O):コンテンツ要素に基づいて、要素削除する
 int型のサイズ()の集合の長さ取得する
配列への配列とコレクションに格納された要素に設定することができる:のtoArray()は[]オブジェクト

コレクション

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

    コレクションは、共通の収集システムを含む、ほとんどのトップレベルの収集システム、です

    コレクションクラスはツールであり、この方法は、コレクションを操作するためのものです

静的 無効スワップ(一覧リスト、int型私は、int型のJ):2つのインデックス位置の指定されたリストを入れ替え
 静的 無効   ソート(リスト<T> 内の要素の自然順序に従ってソートされたリスト:リスト)
 静的 無効シャッフル(リストのリスト):ランダム順列
 静的 ボイドリバース(リストのリスト):逆
 静的 ボイド塗りつぶし(リストリスト、オブジェクトobjに):リスト指定した要素の全て埋めるために、指定されたオブジェクトを使用して
 、静的な 無効コピー(リストDEST、リストSRCは):ですカバレッジターゲットリストにデータ・ソース・リスト、メモ:ターゲットリストは、ソースリストの長さの長さに少なくとも等しい
 静的 INT   二分探索法を用いて、指定された要素binarySearch(リストのリスト、オブジェクトキー)のリストで指定された検索インデックスの場所

 

Listインタフェース(注文したが、nullにすることができ、繰り返し可能

  ユニークな機能:

追加(int型の無効インデックスにインデックス位置の要素を追加します:インデックス、E要素)
EのGET(int型のインデックス):インデックスインデックスに応じて要素を取得します
削除(int型のE 指数):インデックスインデックス・ベースの要素を削除
Eセット(int型のインデックス、Eの要素を):エレメントインデックスセット要素のインデックス位置

  LinkedListのユニークな特徴

LinkedListのリスト構造を使用して、そのため高速な削除は、ArrayListの比較的遅いクエリ下地
無効addFirst(E E):リストの先頭に要素を追加し
、ボイドaddLast(E E):リストの末尾に要素を追加
 E getFirstと():ゲット素子鎖の頭部、および削除されない要素
 E GetLastのは():エレメントは削除されません、チェーンの素子端を取得
 要素ストランドヘッド鎖の素子ヘッドを返し、削除:E removeFirstとを()
 E removeLastを():チェーンの素子端を返し、削除しますチェーンの要素終了

 

一般的なサブクラスのリスト:

 *      ArrayListの

 *基本的な構造は、配列、クエリ、高速、低速の追加と削除で

 *      LinkedListの

 *基礎構造がリストされ、クエリが遅い、速い追加と削除で

 


Setインタフェース(リピートすることは許されない障害がnullになることができ、何のインデックスがありません

  コレクションセット特徴:順不同のは、nullにすることができ、インデックスがない、繰り返されることは許されません

    それが直接オブジェクトをインスタンス化されていないため、セットがインターフェイスであります

設定して<文字列>設定=新しいHashSetの<文字列>();

    インタフェースは、主に、それがコレクションのいくつかの一般的なメソッドを持って、コレクションインタフェースから継承されます。

 

一般的なサブクラスを設定します。

  HashSetのは:基礎となるデータ構造は、ハッシュテーブルであります

新しい要素はの1つのHashSetのコレクションずつ比較されている要素のセットに追加されている

(各要素はのhashCode()呼び出しハッシュ値を生成する)最初のハッシュ値を比較し

、あなたがすでに新しい要素のセットを持っており、要素を追加した場合ハッシュ値は、コレクションに新たに追加された要素は異なる

新しい要素の集合は、要素のハッシュ値に追加されているかのように、この時間も比較のequals(オブジェクトobj)を呼び出す必要があり、同じ

であれば等号(オブジェクトobj)方法は、次に、新たに追加された要素がコレクションに格納されていない場合、属性値と新しい要素の同じセットを要素に追加されたことを示す、trueを返し

等しい(オブジェクトobj)メソッドが新たに追加されたコレクションとその要素を示し、falseを返す場合既存の要素のプロパティ値はその後、コレクションに新たに追加された要素異なっています

   TreeSetの:基礎となるデータ構造は赤黒木であります

 

 


 

コレクションの概要

 

 

あなたが設定を知っているが、HashSetのを使用するために、どの設定がわからない場合。
                    マルチクエリ:ArrayListの
                    追加やより:LinkedListの
あなたは、リストを知っているが、ArrayListのを使用するリスト、わからない場合。
     
あなたがコレクションのコレクションを知っているが、使用するのか分からない場合は、ArrayListのを使用しています。
あなたは、コレクションを知っている場合は、ArrayListのを使用しています。

 

 

 


 

イテレータ

トラバーサルコレクション:

       1.toArray()、アレイは、次に通過できる、アレイのセットに変換することができます。

       2.iterator()、イテレータオブジェクトを返すことができ、我々は、コレクションのイテレータオブジェクトを反復処理することができます

    プライベート 静的な 無効法2(){ 
        コレクションC = 新しい新しいのArrayList(); 
        c.add( "こんにちは" ); 
        c.add( "世界" ); 
        イテレータは、ITは = c.iterator(); 

        しばらく(it.hasNext()) { 
            のSystem.out.println(it.next()); 
        } 次のオブジェクト():すべての要素を取得することができるかどうかを決定する:次の要素ブールのhasNext()を返すを
    

  ときイテレータが動作時に、イテレータはコレクションに依存しているコレクションのコピーに相当する、とあなたは違うのコレクションを発見した場合、例外がスローされます。注意してください


foreachの&ジェネリック

我々は異なるタイプのオブジェクトを保存する場合、コレクションは、オブジェクトの任意の型を格納することができますので、型変換が異常変換時に発生する可能性があります、

 *だから、Javaは、メカニズムを提供してくれ、と呼ばれるジェネリック医薬品をこの問題を解決するために、

 *

 *ジェネリック:幅広い種類の、事前にコンパイルする明確なデータの仕事の種類は、配列の特徴を学びます

 *一般的なメリット:

 *型変換の問題を避けてください

 *あなたは、黄色の警告ラインを減らすことができます

 *私たちは、書き込みコードを簡素化することができます

 

foreach:ループ、コレクションまたは配列のために強化されたが、一般的に横断するために使用されています

 *フォーマット:

 {*(オブジェクトまたは配列のコレクション型の可変要素)について

 *変数として使用することができます。

 *}

    注:拡張forループでコレクションを変更することはできません、そうでない場合は、同時変更例外が存在します。

 

 

おすすめ

転載: www.cnblogs.com/viperqy/p/11369748.html