一.List接口
ArrayList:动态数组,要保存的元素个数不确定,动态变化
LinkedList:链表
二.List中的增,删,改,查
增加
1.add(任意数据类型 新值)【add方法默认在集合末尾添加】
2.add(int index,任意数据类型):在索引为index的位置插入新元素
删除
1.remove(int index):删除指定位置元素
2.remove(元素值):按值删除,默认删除第一个元素
修改
set(int index,新值):修改index位置元素为新元素,返回修改前的元素值
查找
1.get(int index):返回index位置的元素值
2.boolean contains(元素值):判断List中是否包含指定值
代码示例:
import java.util.ArrayList;
import java.util.List;
/**
* @author happy
*/
public class ListTest {
public static void main(String[] args) {
int[] data = {1,2,3,4,5,7};
List<Integer> list = new ArrayList<>();
for (int i:data) {
list.add(i);
}
System.out.println(list.contains(10));
System.out.println(list.get(3));
list.remove(1);
System.out.println(list);
int index = list.indexOf(7);
list.remove(index);
System.out.println(list);
遍历:
import java.util.ArrayList;
import java.util.List;
/**
* @author happy
*/
public class ListTest {
public static void main(String[] args) {
int[] data = {1,2,3,4,5,7};
List<Integer> list = new ArrayList<>();
for (int i:data) {
list.add(i);
}
//[1, 2, 3, 4, 5, 7]打印这个数组
System.out.println(list);
for (int temp:list) {
//1 2 3 4 5 7 分开打印每个元素
System.out.print(temp+" ");
}
}
}
三.Set接口
1.概念:
1.一次存储一个不重复元素:方便进行元素去重处理
2..Set接口,元素的添加顺序和插入顺序没有太大关系(HashSet类)
3.Set是List接口的子接口,只是元素插入有了不重复的限制,其他用法和List差不多【看见Set和Map天然就是一个查找或者搜索的语义】
代码示例:
import java.util.HashSet;
import java.util.Set;
/**
* @author happy
*/
public class SetTest {
public static void main(String[] args) {
String[] str = {"孙悟空","猪八戒","C"};
Set<String> set = new HashSet<>();
for (String s:str) {
set.add(s);
}
//[C, 孙悟空, 猪八戒]
System.out.println(set);
}
}
四.Map接口
1.概念:
Map接口:Map接口是一个映射的关系,一次存储两个元素 key = val(键值对应元素),key不重复,val可能重复,通过key值查找元素
2.Map中的添加修改,查找,删除
1.put(key,val):将key和对应的val存储到Map中,如果key值存在,就修改val,如果key不存在,就添加val
import java.util.HashMap;
import java.util.Map;
/**
* @author happy
*/
public class MapTest {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<>();
map.put(1,"小张");
map.put(2,"小明");
map.put(3,"小王");
map.put(1,"小花");
//{1=小花, 2=小明, 3=小王}
System.out.println(map);
}
}
2.查找
1.存在返回null(v value=map.get(key))
String ret = map.get(1);
System.out.println(ret);
2.如果不存在,返回默认值(V value=map.getOrDefault(key,defaultValue))
map.getOrDefault(2,"空");
3.删除
map.remove(key):删除整个键值对,返回删除前的key对应的value,不存在返回null
map.remove(1);
System.out.println(map);
五.Map集合的遍历
代码示例:
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @author happy
*/
public class MapTest {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<>();
map.put(1,"小张");
map.put(2,"小明");
map.put(3,"小王");
map.put(1,"小花");
Set<Map.Entry<Integer,String>> entry = map.entrySet();
for (Map.Entry<Integer,String> temp:entry) {
System.out.println(temp.getKey() +"="+ temp.getValue());
}
}
}