検索
ホームページ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> map = new HashMap<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     }</string></string></string></string>

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> map = new HashMap<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>> set = map.entrySet();13         //3.遍历Set集合,获取每一个映射关系Entry<k>14         //使用迭代器遍历Set集合15         Iterator<map.entry>> it = set.iterator();16         while(it.hasNext()){17             Map.Entry<string> entry = it.next();18             //4.使用Entry<k>中的方法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> entry:set){26             //4.使用Entry<k>中的方法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> entry:map.entrySet()){34             //4.使用Entry<k>中的方法getKey和getValue获取健和值35             String key = entry.getKey();36             String value = entry.getValue();37             System.out.println(key+"..."+value);38         }39     }</k></string></k></string></k></string></map.entry></k></map.entry></string></string>

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> poker = new HashMap<integer>(); 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>=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> 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 }</integer></integer></pokernumber.size></integer></integer></integer></integer></integer></integer></integer></integer></integer></integer></integer></integer>

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

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。