总结一下Java集合
备忘录 lù)
动态数组List是一种类似于数组的集合,它按照索引号的顺序来管理元素。List可以保持重复的元素。
在创建对象时,与数组的不同之处在于不需要指定元素数量。
添加
配列ver
// 生成時要素数は3
int[] nums = new int[3];
nums[0] = 3;
nums[1] = 6;
nums[2] = 1;
for(int value : nums) {
System.out.println(value);
}
ArrayList
// 生成時中身は空
List<Integer> list = new ArrayList<>();
// 指定しない場合は末尾に追加
list.add(3);
list.add(6);
list.add(1);
// 位置を指定して要素を追加する
list1.add(1, 999);
for (int value : list) {
System.out.println(value);
}
获得
配列
int num = nums[1];
arraylist
int num = list.get(1);
删除配列
機能なし
// 生成時要素数は3
int[] nums = new int[3];
nums[0] = 3;
nums[1] = 6;
nums[2] = 1;
for(int value : nums) {
System.out.println(value);
}
// 生成時中身は空
List<Integer> list = new ArrayList<>();
// 指定しない場合は末尾に追加
list.add(3);
list.add(6);
list.add(1);
// 位置を指定して要素を追加する
list1.add(1, 999);
for (int value : list) {
System.out.println(value);
}
- 配列
int num = nums[1];
- arraylist
int num = list.get(1);
删除配列
機能なし
arraylist
list.remove(1);
尺寸抽取要素数量。
System.out.println(list.size());
地图
Map是一种用键和值的组合来管理元素的集合。
键不能重复,但值可以重复。
Map<String, String> johnDoe = new HashMap<>();
johnDoe.put("name", "John Doe");
johnDoe.put("gender", "male");
johnDoe.put("hobby", "programming");
johnDoe.put("favorite_food", "apple");
-
HashMapの生成
System.out.println(list.size());
Map是一种用键和值的组合来管理元素的集合。
键不能重复,但值可以重复。
Map<String, String> johnDoe = new HashMap<>();
johnDoe.put("name", "John Doe");
johnDoe.put("gender", "male");
johnDoe.put("hobby", "programming");
johnDoe.put("favorite_food", "apple");
-
- HashMapの生成
-
- 要素の追加 (put)
-
- 要素の取り出し (get)
-
- 要素を全て取り出す (拡張for文使用)
-
- 要素の削除 (remove)
- 要素数の取得 (size)
拔出 (qu chu)
public class HashMapEntrySample {
public static void main(String args[]) {
Map<String, Integer> numOfUser = new HashMap<>();
numOfUser.put("A駅", 100000);
numOfUser.put("B駅", 130000);
numOfUser.put("C駅", 20000);
for (Entry<String, Integer> entry : numOfUser.entrySet()) {
String key = entry.getKey();
int value = entry.getValue();
System.out.println(key + "の乗降客数:" + value + "人");
}
}
}
设定
Set是一种管理不重复元素的集合。
Set<String> ipAddresses = new HashSet<>();
String[] accessLog = { // 1日分のアクセスログ
"202.4.x.x", "202.4.x.x", "49.33.x.x", "202.4.x.x", "49.33.x.x", "222.34.x.x", "180.8.x.x", "202.4.x.x",
"222.34.x.x", "83.217.x.x", "222.34.x.x", "49.33.x.x" };
for (String ipAddress : accessLog) {
// セットに全てのアクセスログを1つずつaddする。
ipAddresses.add(ipAddress);
}
巢穴
ArrayList<ArrayList<Integer>> twoDimenArrayList = new ArrayList<>();
ArrayList<Integer> row0 = new ArrayList<>();
row0.add(10);
row0.add(20);
row0.add(30);
ArrayList<Integer> row1 = new ArrayList<>();
row1.add(100);
row1.add(200);
row1.add(300);
twoDimenArrayList.add(row0);
twoDimenArrayList.add(row1);
for (ArrayList<Integer> arrayList : twoDimenArrayList) {
for (Integer integer : arrayList) {
System.out.println(integer.intValue());
}
}
备考
LinkedList という仲間が同様の機能で、特定のシチュエーションで高速で動作
LinkedListは、 要素の追加や削除が頻繁に行われる ときに有用なクラスです。
public class HashMapEntrySample {
public static void main(String args[]) {
Map<String, Integer> numOfUser = new HashMap<>();
numOfUser.put("A駅", 100000);
numOfUser.put("B駅", 130000);
numOfUser.put("C駅", 20000);
for (Entry<String, Integer> entry : numOfUser.entrySet()) {
String key = entry.getKey();
int value = entry.getValue();
System.out.println(key + "の乗降客数:" + value + "人");
}
}
}
Set是一种管理不重复元素的集合。
Set<String> ipAddresses = new HashSet<>();
String[] accessLog = { // 1日分のアクセスログ
"202.4.x.x", "202.4.x.x", "49.33.x.x", "202.4.x.x", "49.33.x.x", "222.34.x.x", "180.8.x.x", "202.4.x.x",
"222.34.x.x", "83.217.x.x", "222.34.x.x", "49.33.x.x" };
for (String ipAddress : accessLog) {
// セットに全てのアクセスログを1つずつaddする。
ipAddresses.add(ipAddress);
}
巢穴
ArrayList<ArrayList<Integer>> twoDimenArrayList = new ArrayList<>();
ArrayList<Integer> row0 = new ArrayList<>();
row0.add(10);
row0.add(20);
row0.add(30);
ArrayList<Integer> row1 = new ArrayList<>();
row1.add(100);
row1.add(200);
row1.add(300);
twoDimenArrayList.add(row0);
twoDimenArrayList.add(row1);
for (ArrayList<Integer> arrayList : twoDimenArrayList) {
for (Integer integer : arrayList) {
System.out.println(integer.intValue());
}
}
备考
LinkedList という仲間が同様の機能で、特定のシチュエーションで高速で動作
LinkedListは、 要素の追加や削除が頻繁に行われる ときに有用なクラスです。
ArrayList<ArrayList<Integer>> twoDimenArrayList = new ArrayList<>();
ArrayList<Integer> row0 = new ArrayList<>();
row0.add(10);
row0.add(20);
row0.add(30);
ArrayList<Integer> row1 = new ArrayList<>();
row1.add(100);
row1.add(200);
row1.add(300);
twoDimenArrayList.add(row0);
twoDimenArrayList.add(row1);
for (ArrayList<Integer> arrayList : twoDimenArrayList) {
for (Integer integer : arrayList) {
System.out.println(integer.intValue());
}
}
LinkedList という仲間が同様の機能で、特定のシチュエーションで高速で動作
LinkedListは、 要素の追加や削除が頻繁に行われる ときに有用なクラスです。