ホームページ  >  記事  >  Java  >  Java での List、Set、Map の使用法を理解するためのコード

Java での List、Set、Map の使用法を理解するためのコード

高洛峰
高洛峰オリジナル
2017-01-22 15:18:021499ブラウズ

Java で List、Set、Map を使用するためのコードは次のとおりです:

package tingjizifu;
import java.util.*;
public class TongJi {
/*
* 使用Scanner从控制台读取一个字符串,统计字符串中每个字符出现的次数,要求使用学习过的知识完成以上要求
* 实现思路根据Set、List、Map集合的特性完成。
*/
public static void main(String[] args) {
// 输入字符串
Scanner input = new Scanner(System.in);
String shuRu = input.next();
// 把字符串字符装入List集合
List<String> list = new ArrayList<String>();
for (int i = 0; i < shuRu.length(); i++) {
list.add(String.valueOf(shuRu.charAt(i)));
}
// 把字符串字符装入Set集合
Set<String> set = new HashSet<String>();
for (int i = 0; i < shuRu.length(); i++) {
set.add(String.valueOf(shuRu.charAt(i)));
}
// 用Set中的字符与List中的字符进行比较,相同就加1进行计数,
// 然后把Set集合中的字符作为键(key),统计的数作为值(value),最后打印出Map中的数据
Map<String, Integer> map = new HashMap<String, Integer>();
for (String str : set) {
int sum = 0;
// System.out.println(str);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals(str)) {
sum++;
}
}
map.put(str, sum);
}
Set<String> ss = map.keySet();
for (String str : ss) {
System.out.println(str + "出现次数为" + map.get(str) + "次");
}
input.close();
}
}

set マップ リストの違いを見てみましょう

これらはすべてコレクション インターフェイスです

set - その中の値は許可されていません繰り返され、順序付けされていないデータ構造
リスト - 順序付けされたデータ構造であるため、その中の値の繰り返しが許可されます
マップ - ペアのデータ構造、キー値は一意である必要があります (キーは同じであってはなりません)それ以外の場合は値が置き換えられます)

リスト オブジェクトごとに入力 並べ替えや編集操作を行わずに、オブジェクトを順番に保存します。

Set は各オブジェクトを 1 回だけ受け入れ、独自の内部ソート方法を使用します (通常、要素が順序ではなく、要素が Set に属しているかどうかのみを考慮します。そうでない場合は、List を使用する必要があります)。

Map は各要素のコピーも保存しますが、これは「キー」に基づいており、Map には組み込みの並べ替え機能もあるため、要素が追加される順序は関係ありません。要素を追加する順序が重要な場合は、LinkedHashSet または LinkedHashMap を使用する必要があります。

Collection はオブジェクトのコレクションです。Collection には List と Set の 2 つのサブインターフェースがあります。

List は添え字 (1, 2..)、値は繰り返すことができます

そして、Setはカーソルを介してのみ値を取得でき、値を繰り返すことはできません

ArrayList、Vector、LinkedListはListの実装クラスです

ArrayListはスレッドです-unsafe、Vector はスレッドセーフです はい、これら 2 つのクラスの最下層は配列によって実装されます

LinkedList はスレッドアンセーフで、最下層はリンク リストによって実装されます

Map はキーと値のコレクションですペア

HashTableとHashMapはMapの実装クラスです

HashTableはスレッドセーフであり、null値を格納できません

HashMapはスレッドセーフではなく、null値を格納できます

上記はエディタのものですJava での List、Set、Map の使用に関する知識の紹介です。ご質問があれば、メッセージを残してください。編集者がすぐに返信します。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。

Java での List、Set、Map の使用に関するその他の記事については、PHP 中国語 Web サイトに注目してください。

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