Java-蓝桥杯-集合(容器)在竞赛中的使用

Java-蓝桥杯-集合(容器)在竞赛中的使用

  • Map.Entry
  • Collection
    • list
    • Set
    • Map

Map.Entry

一个Java中类似于C++中的Pair的容器。Map.Entry是Map的一个内部接口。配合Map使用。

主要的三个方法。

K getKey():
V getValue():
V setValue(V value)
示例:

    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        LinkedHashMap<String,Integer> lm = new LinkedHashMap<>();
        lm.put("C",3);
        lm.put("A",1);
        lm.put("B",2);
        lm.put("D",4);
        Set<Map.Entry<String, Integer>> ent = lm.entrySet();
        Iterator<Map.Entry<String, Integer>> it = ent.iterator();
        while(it.hasNext()){
            Map.Entry<String,Integer> mid = it.next();
            System.out.println(mid.getKey());
            System.out.println(mid.getValue());
        }
    }

//输出
C
3
A
1
B
2
D
4

    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        LinkedHashMap<String,Integer> lm = new LinkedHashMap<>();
        lm.put("C",3);
        lm.put("A",1);
        lm.put("B",2);
        lm.put("D",4);
        Set<Map.Entry<String, Integer>> ent = lm.entrySet();
        Iterator<Map.Entry<String, Integer>> it = ent.iterator();
        while(it.hasNext()){
            Map.Entry<String,Integer> mid = it.next();
            System.out.println(mid.getKey());
            System.out.println(mid.getValue());
            mid.setValue(23);
        }
        System.out.println("修改后:");
        Iterator<Map.Entry<String, Integer>> it2 = ent.iterator();
        while(it2.hasNext()){
            Map.Entry<String,Integer> mid = it2.next();
            System.out.println(mid.getKey());
            System.out.println(mid.getValue());
        }
    }

//输出
C
3
A
1
B
2
D
4
修改后:
C
23
A
23
B
23
D
23

Collection

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

List:一种有序列表的集合。
Set:一种保证没有重复元素的集合。
Map:一种通过键值(key-value)查找的映射表集合。

list

Java-蓝桥杯-集合(容器)在竞赛中的使用_第1张图片
Java-蓝桥杯-集合(容器)在竞赛中的使用_第2张图片
在这里插入图片描述
示例:

public static void main(String[] args) throws Exception {
  List<Integer> list = new ArrayList<>();
  List<Integer> two = new ArrayList<>();
  //增加
  list.add(5); //单个增加
  list.add(2,9); //在指定位置2插入元素9
  list.addAll(two); //将集合two中的元素全部添加到list中
  list.addAll(3,two); //在指定位置将集合two中的元素全部添加到list中
  //删除
  list.clear(); //删除所有元素
  list.remove(2); //删除指定索引下标元素
  list.removeAll(two); //删除list中存在于指定集合two中的元素

  //查找
  list.lastIndexOf(5); //返回指定元素在 arraylist 中最后一次出现的位置
  list.contains(2); //判断元素是否存在
  list.retainAll(two); //保留list中在指定集合two中也存在的那些元素
  list.containsAll(two);  //查看list是否包含指定集合two中的所有元素
  list.indexOf(6); //返回list中元素的索引值
  list.get(6); //通过索引获取元素

  //替换
  list.set(2,5); //替换list中指定索引为2的元素为5

  //其他操作
  list.isEmpty(); //判断list是否为空
  list.size(); //返回list里元素数量
  list.subList(2,6); //通过索引截取部分list中的元素
  list.equals(two); //将指定的对象与此列表进行比较以获得相等性,当大小、内容全部相同返回true,否则返回false
  list.toArray(); //以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组,也可以指定返回数组的类型
}

Set

Java-蓝桥杯-集合(容器)在竞赛中的使用_第3张图片
在这里插入图片描述
示例:

public static void main(String[] args) throws Exception {
  Set<Integer> ttf = new TreeSet<>();
  Set<Integer> two = new TreeSet<>();
  //增加
  ttf.add(5); //单个增加
  ttf.addAll(two); //将集合two中的元素全部添加到ttf中
  //删除
  ttf.clear(); //删除所有元素
  ttf.remove(2); //删除指定元素
  ttf.removeAll(two); //删除ttf中存在于指定集合two中的元素

  //查找
  ttf.contains(2); //判断元素是否存在
  ttf.retainAll(two); //保留ttf中在指定集合two中也存在的那些元素
  ttf.containsAll(two);  //查看ttf是否包含指定集合two中的所有元素

  //其他操作
  ttf.isEmpty(); //判断ttf是否为空
  ttf.size(); //返回ttf里元素数量
  ttf.equals(two); //将指定的对象与此列表进行比较以获得相等性,当大小、内容全部相同返回true,否则返回false
  ttf.toArray(); //以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组,也可以指定返回数组的类型
}

Map

Java-蓝桥杯-集合(容器)在竞赛中的使用_第4张图片
Java-蓝桥杯-集合(容器)在竞赛中的使用_第5张图片
示例:

public static void main(String[] args) throws Exception {
  Map<String,Integer> map = new HashMap<>();
  Map<String,Integer> two = new HashMap<>();
  //增加
  map.put("key",123);
  map.putAll(two); //将指定map复制到此map(可选操作)。
  //删除
  map.clear(); //删除所有的映射(可选操作)。
  map.remove("key"); //如果存在,从该地图中删除一个键的映射。
  map.remove("key",159); //删除符合的键值对
  //查找
  map.containsKey("key"); //如果此映射包含指定键的映射,则返回 true 。
  map.containsValue("value"); //如果此地图将一个或多个键映射到指定的值,则返回 true 。
  map.entrySet(); //返回包含映射的Set集合,返回类型 Set>
  map.get("key"); //返回指定键所映射的值,如果没有此键则返回null
  map.getOrDefault("key",456); 返回指定键所映射的值,如果没有则返回设置的默认值。
  map.keySet(); //返回包含的键的Set集合。Set
  map.values(); //返回包含的值的Collection集合。 Collection
  //替换
  map.replace("key", 456); //找到指定的键,修改并返回原来的值。
  map.replace("key", 123, 789); //找到key为key,值为123的,才将123修改为789。否则不修改。
  //其他
  map.isEmpty(); //如果不包含键值映射,则返回 true 。
  map.equals("156"); //将指定的对象与此映射进行比较
  map.putIfAbsent("key",789); //如果指定的键尚未与某个值相关联(或映射到 null ),则将其与给定值相关联并返回 null ,如果已经有关联的值,则返回。
  map.size(); //键值对的数量
}

你可能感兴趣的:(java,蓝桥杯,jvm)