java 集合笔记_Java集合笔记

Collection

java标准库自带的 java.util 提供了集合类:** Collection** ,他是除 Map 外的其他集合类的根接口。java.util 包下主要提供了以三种集合类型:

List :一种有序列表的集合,例如,按索引排列的Student的List;

Set :一种保证没有重复元素的集合,例如,所有无重复名称的Student的Set;

Map :一种通过键值(key-value)查找的映射表集合,例如,根据Student的name查找对应Student的Map。

List

在集合类中,List是最基础的一种集合:它是一种有序列表.

在使用List接口时,可以使用常用的几个方法:

在末尾添加一个元素:boolen add(E e)

在指定索引添加一个元素:boolen add(int index,E e)

删除指定索引的元素:int remove(int index)

删除某个元素:int remove(Object e)

获取指定索引的元素:E get(int index)

获取链表大小(包含元素的个数):int size()

判断List是否包含某个指定元素:boolean contains(Object o)

返回某个元素的索引,如果元素不存在,就返回-1 :int indexOf(Object o)

List特点

List接口允许我们添加重复元素

List还允许添加null

List的遍历

我们一般使用迭代器 Iterator

public class MyList {

public static void main(String[] args) {

List list = new ArrayList<>();

list.add("apple");

list.add("banana");

list.add("orange");

Iterator iterator = list.iterator();

while (iterator.hasNext()){

String s = iterator.next();

System.out.println(s);

}

}

}

Map

public class Main {

public static void main(String[] args) {

Student s = new Student("Xiao Ming", 99);

Map map = new HashMap<>();

map.put("Xiao Ming", s); // 将"Xiao Ming"和Student实例映射并关联

Student target = map.get("Xiao Ming"); // 通过key查找并返回映射的Student实例

System.out.println(target == s); // true,同一个实例

System.out.println(target.score); // 99

Student another = map.get("Bob"); // 通过另一个key查找

System.out.println(another); // 未找到返回null

}

}

class Student {

public String name;

public int score;

public Student(String name, int score) {

this.name = name;

this.score = score;

}

}

通过上述代码可知:Map是一种键-值映射表,当我们调用put(K key, V value)方法时,就把key和value做了映射并放入Map。当我们调用V get(K key)时,就可以通过key获取到对应的value。如果key不存在,则返回null。和List类似,Map也是一个接口,最常用的实现类是HashMap。

遍历Map

对Map来说,要遍历key可以使用for each循环遍历Map实例的keySet()方法返回的Set集合,它包含不重复的key的集合

public class Main {

public static void main(String[] args) {

Map map = new HashMap<>();

map.put("apple", 123);

map.put("pear", 456);

map.put("banana", 789);

for (String key : map.keySet()) {

Integer value = map.get(key);

System.out.println(key + " = " + value);

}

}

}

Set

我们知道,Map用于存储key-value的映射,对于充当key的对象,是不能重复的,并且,不但需要正确覆写equals()方法,还要正确覆写hashCode()方法。

如果我们只需要存储不重复的key,并不需要存储映射的value,那么就可以使用Set。

Set用于存储不重复的元素集合,它主要提供以下几个方法:

将元素添加进Set:boolean add(E e)

将元素从Set删除:boolean remove(Object e)

判断是否包含元素:boolean contains(Object e)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值