>  기사  >  Java  >  Java에서 List, Set 및 Map의 사용을 이해하기 위한 코드

Java에서 List, Set 및 Map의 사용을 이해하기 위한 코드

高洛峰
高洛峰원래의
2017-01-22 15:18:021462검색

Java에서 List, Set collection, 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 map list의 차이점을 살펴보겠습니다.

모두 collection 인터페이스입니다

set --값은 반복이 허용되지 않으며 순서가 지정되지 않은 데이터 구조
list --값은 순서가 지정된 데이터 구조이므로 반복이 허용됩니다.
map -- 쌍으로 된 데이터 구조 데이터 구조에서 키 값은 고유성을 가져야 합니다(키는 동일할 수 없으며 그렇지 않으면 값이 대체됩니다)

목록은 정렬이나 편집 작업 없이 입력된 순서대로 개체를 저장합니다.

Map도 각 요소의 복사본을 저장하지만 이는 "키"를 기반으로 합니다. Map에도 정렬 기능이 내장되어 있으므로 요소가 추가되는 순서는 신경 쓰지 않습니다. 요소 추가 순서가 중요한 경우 LinkedHashSet 또는 LinkedHashMap을 사용해야 합니다.

컬렉션은 객체의 컬렉션으로 List와 Set

List에는 첨자(1,2..)를 전달하여 값을 얻을 수 있으며, 값은 반복될 수 있습니다.


Set은 커서를 통해서만 값을 얻을 수 있고, 값은 반복될 수 없습니다.


ArrayList, Vector 및 LinkedList는 List의 구현 클래스입니다


ArrayList는 스레드에 안전하지 않으며 Vector는 이 두 클래스의 하위 계층이 구현됩니다. by arrays


LinkedList는 스레드에 안전하지 않으며 맨 아래 레이어는 연결된 목록으로 구현됩니다.


Map은 키-값 쌍의 모음입니다


HashTable과 HashMap은 Map의 구현 클래스입니다

HashTable은 스레드로부터 안전하며 null 값을 저장할 수 없습니다


HashMap은 스레드로부터 안전하지 않으며 null 값을 저장할 수 있습니다


이상은 에디터가 Java에 대해 소개하는 내용입니다. 궁금한 점이 있으면 메시지를 남겨주시면 에디터가 List, Set, Map 사용법에 대한 지식이 도움이 되기를 바랍니다. 시간 내에 답장을 보내주세요. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!

Java의 List, Set 및 Map 사용에 대한 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.