ホームページ Java &#&チュートリアル マップコレクションとは何ですか?マップコレクションの特徴

マップコレクションとは何ですか?マップコレクションの特徴

Jun 20, 2017 am 10:15 AM
collections パラメータ 変数 集める

マップセットの特徴:
1. 値を割り当てるときは、キーと値を同時に割り当てる必要があります。
2. 順序付けされていないセットです。要素が一致していない可能性があります)
3.key 値を繰り返すことはできませんが、値は繰り返すことができます
4. 1 つのキーは 1 つの vlaue にのみ対応できます
5. コレクションを定義する場合、データ型のキーと値は同じものを使用できます。データ型、または異なるデータ型を使用できます

マップ コレクションの機能
java.util.Mapインターフェイス: 2 列のセットであるセット

マップ セットの最初の方法traversal
Map セット トラバーサルの最初の方法: キーによる値の検索 Map コレクションにはメソッドがあります: keySet
Set keySet() は、このマップに含まれるキーの Set ビューを返します。 Map コレクションのキーを Set コレクションに保存します

Map コレクションを走査する手順: 1. Map コレクションを定義し、コレクションに要素を追加します
2. Map コレクションの keySet メソッドを呼び出してキーを追加しますMap コレクション キーは Set コレクションに保存されます
3. Set コレクションを走査し、Map セットのすべてのキーを取得します
4. 取得したキーを通じて、Map set メソッド get を使用して値を見つけます

 1 public static void main(String[] args) { 2         //1.定义一个Map集合,往集合中添加元素 3         Map<String,String> map = new HashMap<String,String>(); 4         map.put("a", "1"); 5         map.put("b", "2"); 6         map.put("c", "3"); 7         map.put("d", "4"); 8         //2.调用Map集合中的方法keySet,把Map集合中的健存储到一个Set集合中 9         Set<String> set = map.keySet();10         //System.out.println(set.getClass());11         //3.遍历Set集合,获取Map集合所有的健12         //使用迭代器遍历13         Iterator<String> it = set.iterator();14         while(it.hasNext()){15             String key = it.next();16             //4.通过获取到的健,使用Map集合的方法get查找值17             String value = map.get(key);18             System.out.println(key+"..."+value);19         }20         System.out.println("----------------");21         //使用增强for遍历22         for(String key : set){23             //4.通过获取到的健,使用Map集合的方法get查找值24             String value = map.get(key);25             System.out.println(key+"..."+value);26         }27         System.out.println("----------------");28         //使用增强for遍历29         for(String key : map.keySet()){30             //4.通过获取到的健,使用Map集合的方法get查找值31             String value = map.get(key);32             System.out.println(key+"..."+value);33         }34     }
ログイン後にコピー

Map セットのトラバース メソッドの 2 番目のタイプ Map コレクションをトラバースする 2 番目の方法: キーと値のペアをトラバースする方法
Map コレクションには次のメソッドがあります。 >entrySet() は、この関係のマップ セット ビューに含まれるマッピングを返します。

トラバーサル手順:
1. Map コレクションを定義し、そのコレクションに要素を追加します 2. Map コレクションのentrySet メソッドを呼び出し、Map コレクション内の各マッピング関係 (結婚証明書) を Set コレクションに追加します
3. Set コレクションを走査し、各マッピング関係 Entry を取得します
4. Entry のメソッド getKey および getValue を使用してキーと値を取得します

 1 public static void main(String[] args) { 2         //1.定义一个Map集合,往集合中添加元素 3         Map<String,String> map = new HashMap<String,String>(); 4         map.put("a", "1"); 5         map.put("b", "2"); 6         map.put("c", "3"); 7         map.put("d", "4"); 8         /* 9          * 2.调用Map集合中的方法entrySet,把Map集合中的每一个映射关系(结婚证)放入到Set集合中10          * 成员内部类的访问方式:外部类.内部类(Map.Entry)11          */12         Set<Map.Entry<String, String>> set = map.entrySet();13         //3.遍历Set集合,获取每一个映射关系Entry<K,V>14         //使用迭代器遍历Set集合15         Iterator<Map.Entry<String, String>> it = set.iterator();16         while(it.hasNext()){17             Map.Entry<String, String> entry = it.next();18             //4.使用Entry<K,V>中的方法getKey和getValue获取健和值19             String key = entry.getKey();20             String value = entry.getValue();21             System.out.println(key+"..."+value);22         }23         System.out.println("---------------------");24         //使用增强for遍历Set集合25         for(Map.Entry<String, String> entry:set){26             //4.使用Entry<K,V>中的方法getKey和getValue获取健和值27             String key = entry.getKey();28             String value = entry.getValue();29             System.out.println(key+"..."+value);30         }31         System.out.println("---------------------");32         //使用增强for遍历Set集合33         for(Map.Entry<String, String> entry:map.entrySet()){34             //4.使用Entry<K,V>中的方法getKey和getValue获取健和值35             String key = entry.getKey();36             String value = entry.getValue();37             System.out.println(key+"..."+value);38         }39     }
ログイン後にコピー
HashMap を使用してカスタム タイプのキー値を保存します
HashMap はカスタム タイプのキー値を保存します

カスタム タイプは Map コレクションの値として使用されます
カスタム タイプは Map コレクションのキーとして使用されます

覚えておいてください: カスタム タイプが hashCode と等しい場合をオーバーライドする場合
1. HashSet を使用しますカスタム型を保存するには
2. HashMap コレクションを使用します。カスタム型だけを使用します

Hashtable

マップ実装クラス Hashtable 基礎となるデータ構造はハッシュ テーブルであり、特性は hashMap と同じです
Hashtable はスレッドセーフなコレクションです実行速度が遅いです
HashMap スレッドアンセーフなコレクションであり、高速に実行されます

Hashtable は Vector と同じ運命をたどります。JDK1.2 以降、より高度な HashMap に置き換えられます

HashMap では null 値、null health を保存できます。

hashtable は null 値を保存できません。 null Jian


Hashtable 彼の子、サブクラスのプロパティはまだ開発段階でアクティブです

LinkedHashMap コレクション機能

java.util.LinkedHashMap は HashMap を拡張し、Map LinkedHashMap コレクション機能:
1. ハッシュテーブル + リンクリスト: 双方向リンクリストで反復順序を保証できる
2. キーを繰り返すことができない

Collections
java.util.Collections: Collection コレクションを操作するためのツールクラスツール クラスはすべて静的メソッドであり、クラス名を通じて直接使用できます

public static void sort(List list) // コレクション要素を並べ替えます
public static void shuffle(List list ) // コレクション要素の格納場所をシャッフルする

可変パラメータ

JDK1.5以降 新たな機能が登場

使用前提条件: メソッドパラメータのデータ型は決まっているが、パラメータの数は不明


形式を使用する
: 修飾子の戻り値の型 メソッド名(データ型…変数名) { }
...メソッドが同じデータ型のパラメータを複数受け取ることができることを表します
変数パラメータの最下層は とみなすことができます配列


可変パラメータに関する注意事項:
1. メソッドのパラメータは 1 つだけ使用できます。 可変パラメータ 2. メソッドに複数のパラメータがある場合、可変パラメータはパラメータリストの最後に記述する必要があります

 1 public static int add(int...arr){ 2         System.out.println(arr);//[I@104c575 3         System.out.println(arr.length); 4         int sum = 0; 5         //遍历可变参数-->遍历数组 6         for (int i : arr) { 7             sum +=i; 8         } 9         10         return sum;11     }
ログイン後にコピー
静的インポート

JDK1.5の新機能、静的インポート 開発コード量を削減
標準的な書き方、パッケージインポート時のみ使用可能
import static java.lang.System.out;最後に、静的メンバーである必要があります

package cn.itcast.demo05;

import java.util.ArrayList;

import java.util .Collections;

import java.util.HashMap;

  1 /*  2  * 带排序功能的斗地主案例:  3  *     1.准备牌  4  *     2.洗牌  5  *     3.发牌  6  *     4.排序  7  *     5.看牌  8  */  9 public class DouDiZhu { 10     public static void main(String[] args) { 11         //1.准备牌 12         //创建存储序号和拍面值的Map集合 13         HashMap<Integer,String> poker = new HashMap<Integer, String>(); 14         //创建存储序号的List集合 15         ArrayList<Integer> pokerNumber = new ArrayList<Integer>(); 16         //创建序号的数组 17         String[] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"}; 18         //创建花色数组 19         String[] colors = {"?","?","?","?"}; 20         //先把大王和小王存储到集合中 21         int index = 0; 22         poker.put(index, "大王"); 23         pokerNumber.add(index); 24         index++; 25         poker.put(index, "小王"); 26         pokerNumber.add(index); 27         index++; 28          29         //使用循环嵌套遍历两个数组,组成52张牌 30         for (String number : numbers) { 31             for (String color : colors) { 32                 //把组合包的牌添加到集合中 33                 poker.put(index, color+number); 34                 pokerNumber.add(index); 35                 index++; 36             } 37         } 38         //System.out.println(poker); 39         //System.out.println(pokerNumber); 40          41         //2.洗牌:洗的是牌的序号 42         //使用Collections中的方法shuffle 43         Collections.shuffle(pokerNumber); 44         //System.out.println(pokerNumber); 45          46         /* 47          * 3.发牌:发的也是牌的序号 48          *     a.定义4个集合存储3个玩家和1个底牌 49          *     b.遍历存储序号的List集合 50          *     c.使用list集合的索引%进行判断进行发牌 51          *     注意:先判断底牌 52          */ 53         //a.定义4个集合存储3个玩家和1个底牌 54         ArrayList<Integer> player01 = new ArrayList<Integer>(); 55         ArrayList<Integer> player02 = new ArrayList<Integer>(); 56         ArrayList<Integer> player03 = new ArrayList<Integer>(); 57         ArrayList<Integer> diPai = new ArrayList<Integer>(); 58          59         //b.遍历存储序号的List集合 60         for(int i=0; i<pokerNumber.size(); i++){ 61             //定义变量,接收排的序号 62             int number = pokerNumber.get(i); 63             //c.使用list集合的索引%进行判断进行发牌 64             if(i>=51){ 65                 //存储底牌 66                 diPai.add(number); 67             }else if(i%3==0){ 68                 //给玩家1发牌 69                 player01.add(number); 70             }else if(i%3==1){ 71                 //给玩家2发牌 72                 player02.add(number); 73             }else if(i%3==2){ 74                 //给玩家3发牌 75                 player03.add(number); 76             } 77         } 78         /*System.out.println(player01); 79         System.out.println(player02); 80         System.out.println(player03); 81         System.out.println(diPai);*/ 82          83         //4.排序 84         //使用Collections中的方法sort 85         Collections.sort(player01); 86         Collections.sort(player02); 87         Collections.sort(player03); 88         Collections.sort(diPai); 89          90         /*System.out.println(player01); 91         System.out.println(player02); 92         System.out.println(player03); 93         System.out.println(diPai);*/ 94          95         /* 96          * 5.看牌 97          */ 98         //调用看牌方法 99         lookPoker("刘德华",player01, poker);100         lookPoker("周润发",player02, poker);101         lookPoker("周星驰",player03, poker);102         lookPoker("底牌",diPai, poker);103     }104     105     /*106      * 定义一个看牌的方法107      * 返回值类型:void108      * 方法名:lookPoker109      * 参数列表:玩家和底牌的集合,存储排的Map集合110      * 使用查表法看牌:111      *     遍历List集合,获取Map集合key,使用key去Map集合中查找value112      */113     public static void lookPoker(String name,ArrayList<Integer> list,HashMap<Integer,String> map){114         System.out.print(name+":");115         //遍历List集合,获取Map集合key116         for (Integer key : list) {117             //使用key去Map集合中查找value118             String value = map.get(key);119             System.out.print(value+" ");120         }121         System.out.println();//换行122     }123 }
ログイン後にコピー

以上がマップコレクションとは何ですか?マップコレクションの特徴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

i9-12900Hパラメータ評価リスト i9-12900Hパラメータ評価リスト Feb 23, 2024 am 09:25 AM

i9-12900H は 14 コア プロセッサです。使用されているアーキテクチャとテクノロジはすべて新しく、スレッドも非常に高速です。全体的な動作は優れており、いくつかのパラメータが改善されています。特に包括的で、ユーザーに優れたエクスペリエンスをもたらします。 。 i9-12900H パラメータ評価レビュー: 1. i9-12900H は、q1 アーキテクチャと 24576kb プロセス テクノロジを採用した 14 コア プロセッサで、20 スレッドにアップグレードされています。 2. 最大 CPU 周波数は 1.80! 5.00 ghz で、主にワークロードによって異なります。 3. 価格と比較すると、非常に適しており、価格性能比が非常に優れており、通常の使用が必要な一部のパートナーに非常に適しています。 i9-12900H のパラメータ評価とパフォーマンスの実行スコア

Go 言語でコレクションのような関数を実装するのはなぜ難しいのでしょうか? Go 言語でコレクションのような関数を実装するのはなぜ難しいのでしょうか? Mar 24, 2024 am 11:57 AM

Go 言語ではコレクションのような関数を実装するのが難しく、多くの開発者を悩ませている問題です。 Python や Java などの他のプログラミング言語と比較して、Go 言語には set や map などの組み込みのコレクション型が存在しないため、コレクション関数を実装する際に開発者にいくつかの課題が生じます。まず、コレクションのような機能を Go 言語で直接実装することがなぜ難しいのかを見てみましょう。 Go 言語で最も一般的に使用されるデータ構造はスライスとマップであり、コレクションのような関数を完成させることができますが、

C++ 関数パラメータの型の安全性チェック C++ 関数パラメータの型の安全性チェック Apr 19, 2024 pm 12:00 PM

C++ パラメーターの型の安全性チェックでは、コンパイル時チェック、実行時チェック、静的アサーションを通じて関数が予期される型の値のみを受け入れるようにし、予期しない動作やプログラムのクラッシュを防ぎます。 コンパイル時の型チェック: コンパイラは型の互換性をチェックします。実行時の型チェック:dynamic_cast を使用して型の互換性をチェックし、一致しない場合は例外をスローします。静的アサーション: コンパイル時に型条件をアサートします。

指定された値を引数として受け取る逆双曲線正弦関数の値を見つける C++ プログラム 指定された値を引数として受け取る逆双曲線正弦関数の値を見つける C++ プログラム Sep 17, 2023 am 10:49 AM

双曲線関数は、円の代わりに双曲線を使用して定義され、通常の三角関数と同等です。ラジアン単位で指定された角度から双曲線正弦関数の比率パラメーターを返します。しかし、その逆、つまり別の言い方をすればいいのです。双曲線正弦から角度を計算したい場合は、双曲線逆正弦演算のような逆双曲線三角関数演算が必要です。このコースでは、C++ で双曲線逆サイン (asinh) 関数を使用し、ラジアン単位の双曲線サイン値を使用して角度を計算する方法を説明します。双曲線逆正弦演算は次の式に従います -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}ここで\:In\:is\:自然対数\:(log_e\:k)

win10の検索ボックスの角の丸みを調整する方法 win10の検索ボックスの角の丸みを調整する方法 Jan 15, 2024 pm 03:12 PM

Win10 の検索ボックスの角が丸いというニュースは長い間ありましたが、実装されたことはありませんでした。通常、レジストリを使用して win10 の検索ボックスの角が丸いことを体験できます。それでは、チュートリアルを見てみましょうwin10 の検索ボックスの丸い角にあるバー。 Win10 検索ボックス変数の角丸: 1. 検索ボックスを開き、「regedit」と入力して、レジストリを入力します。 2. Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search でこのパスを見つけます。 3. 空白スペースで、「新規」-「DWORD (32 ビット) 値」-「新しいキーに名前を付ける」を選択します。「ImmersiveSearch」-「数値」

C++ 関数での参照パラメータとポインタ パラメータの高度な使用法 C++ 関数での参照パラメータとポインタ パラメータの高度な使用法 Apr 21, 2024 am 09:39 AM

C++ 関数の参照パラメーター (基本的には変数のエイリアス、参照を変更すると元の変数が変更されます) とポインター パラメーター (元の変数のメモリ アドレスを保存し、ポインターを逆参照して変数を変更します) は、変数を渡したり変更したりするときに使用方法が異なります。参照パラメーターは、コンストラクターまたは代入演算子に渡されるときのコピーのオーバーヘッドを避けるために、元の変数 (特に大きな構造体) を変更するためによく使用されます。ポインター パラメーターは、メモリの場所を柔軟に指定したり、動的データ構造を実装したり、オプションのパラメーターを表すために null ポインターを渡したりするために使用されます。

Laravel コレクションの Where メソッドの実践ガイド Laravel コレクションの Where メソッドの実践ガイド Mar 10, 2024 pm 04:36 PM

Laravel コレクションの Where メソッドに関する実践ガイド Laravel フレームワークの開発中、コレクションは、データを操作するための豊富なメソッドを提供する非常に便利なデータ構造です。中でも、Where メソッドは、指定した条件に基づいてコレクション内の要素をフィルタリングできる、一般的に使用されるフィルタリング メソッドです。この記事では、Laravel コレクションでの Where メソッドの使用法を紹介し、特定のコード例を通じてその使用法を示します。 1. Whereメソッドの基本的な使い方

C# における一般的な同時コレクションとスレッド セーフティの問題 C# における一般的な同時コレクションとスレッド セーフティの問題 Oct 09, 2023 pm 10:49 PM

C# における一般的な同時コレクションとスレッド セーフティの問題 C# プログラミングでは、同時操作の処理は非常に一般的な要件です。スレッド セーフティの問題は、複数のスレッドが同時に同じデータにアクセスして変更する場合に発生します。この問題を解決するために、C# はいくつかの同時コレクションおよびスレッド セーフ メカニズムを提供します。この記事では、C# の一般的な同時コレクションとスレッド セーフティの問題に対処する方法を紹介し、具体的なコード例を示します。同時コレクション 1.1ConcurrentDictionaryConcurrentDictio

See all articles