Java语言程序设计——篇十一(5)

在这里插入图片描述
在这里插入图片描述

       🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

  • 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳🌳
    您的点赞👍、关注➕、收藏⭐️、评论📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻

Map接口及实现类

  • Map是用来存储 “键/值”对 的对象。在Map中存储的关键字和值都必须是对象,并要求关键字是唯一的,而值可以重复。
    在这里插入图片描述

Map接口操作

  • Map接口基本操作:
  public V put(K key, V value)
  public V get(Object key)
  public V remove(Object key)
  public int size()
  public void clear()
  public Set<K> keySet()
  public Collection<V> values()

Map接口的实现类

  • Map接口的常用实现类有HashMap、TreeMap。
  • HashMap类以散列方法存放“键/值”对。其构造方法:
HashMap()
 HashMap(int initialCapacity)
 HashMap(Map m)
  • TreeMap类保证Map中的“键/值”对按关键字升序排序。其构造方法:
TreeMap()
TreeMap(Comparator c)
TreeMap(Map m)

实战演练

例1:HashMapDemo.java

import java.util.*;
public class HashMapDemo {
public static void main(String[] args) {
   String[] country={"中国","印度","澳大利亚","德国","古巴",
		        "希腊","日本"};
   String[] capital={"Beijing","New Delhi","Canberra","Berlin",
                                "Havana","Athens","Tokyo"};
   Map<String, String> m = new HashMap<>();
   for(int i = 0;i<country.length;i++)
        m.put(country[i], capital[i]);
   System.out.println("共有 " + m.size() + " 个国家:");
   System.out.println(m);
   System.out.println(m.get("中国"));   // Beijing
   m.remove("日本");   
   Set<String> coun = m.keySet();
   for(Object c : coun)
       System.out.print(c + " ");
   }
}

在这里插入图片描述
例2:TreeMapDemo.java

import java.util.*;
public class TreeMapDemo {
public static void main(String[] args) {
   String[] country={"中国","印度","澳大利亚","德国","古巴",
		        "希腊","日本"};
   String[] capital={"Beijing","New Delhi","Canberra","Berlin",
                                "Havana","Athens","Tokyo"};
   Map<String, String> m = new TreeMap<>();
   for(int i = 0;i<country.length;i++)
        m.put(country[i], capital[i]);
   System.out.println("共有 " + m.size() + " 个国家:");
   System.out.println(m);
   System.out.println(m.get("中国"));   // Beijing
   m.remove("日本");   
   Set<String> coun = m.keySet();
   for(Object c : coun)
       System.out.print(c + " ");
   }
}

在这里插入图片描述

  • 在Map对象的键上迭代
  for(String key: map.keyset())
  system.out.println(key);
  • 在Map对象的值上迭代
 for(Integer value: map.values())
 system.out.println(value);

Collections类

  • java.util.Collections类是工具类,这个类提供了若干static方法实现集合对象的操作。这些操作大多针对List操作。主要包括下面几个方面:

排序 sort()
查找 binarySearch()
重排 shuffle()
求极值以及其他操作。 max(), min(), reverse()等。

Collections类 — 排序

public static<T> void sort(List<T> list)

功能:按照元素的自然顺序进行排序

public static<T> void sort(List<T> list,
         Comparator<? Super T> c)

功能:根据指定的比较器进行排序

实战演练

例:ListSortDemo.java

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ListSortDemo {
public static void main(String[] args) {
List<String> names = Arrays.asList("peter","anna","mike","Lily");
Collections.sort(names);
System.out.println(names);
Collections.sort(names, (a,b)->b.compareTo(a));
System.out.println(names);
}
}

在这里插入图片描述

Collections类 — 查找

public static<T> int binarySearch(List<T> list, T key)

功能:在按照自然顺序排序后的List中查找key的位置

public static<T> int binarySearch(List<T> list, T key,
         Comparator<? super T>  c)

功能:根据指定的比较器对List排序后,查找key的位置
在这里插入图片描述

实战演练

例:ListSearchDemo.java

import java.util.*;

public class ListSearchDemo{
public static void main(String[] args) {
List<Integer> list = Arrays.asList(5,3,1,7);
Collections.sort(list);   //先排序再查找
Integer key = 4;
int pos = Collections.binarySearch(list, key);  //-3
if(pos < 0) {
List<Integer> nList = new ArrayList<>(list);
nList.add(-pos-1,key);
System.out.println(nList);
      }
   }
}

在这里插入图片描述

Collections类 — 打乱元素次序

public static void shuffle(List<T> list)

功能:使用默认的随机数打乱List中元素的次序

public static void shuffle (List<T> list, Random rnd) 

功能:使用指定的Random对象打乱List中元素的次序

实战演练

例:ListShuffleDemo.java

import java.util.*;
public class ListShuffleDemo {
public static void main(String[] args) {
Integer[] num = {1,3,5,6,4,2,7,9,8,10};
List<Integer> list = Arrays.asList(num);
System.out.println(list);
Collections.shuffle(list);
System.out.println(list); //每次运行输出的结果不同
   }
}

在这里插入图片描述

Collections类 — 求极值

public static<T> T max(Collection<? extends T> coll)

功能:返回给定集合根据其元素自然排序后的最大元素

public static<T> T max(Collection<? extends T> coll, Comparator<? super T> comp)

功能:返回给定集合根据指定的比较器排序后的最大元素

public static<T> T min(Collection<? extends T> coll)

功能:返回给定集合根据其元素自然排序后的最小元素

public static<T> T min(Collection<? extends T> coll, Comparator<? super T> comp)

功能:返回给定集合根据指定的比较器排序后的最大元素

实战演练

例:ListExtremeDemo.java

import java.util.*;

public class ListExtremeDemo {
public static void main(String[] args) {
List<String> list = Arrays.asList("dog","cat","tiger");
System.out.println(Collections.max(list));
System.out.println(Collections.max(list, (String a,String b)->b.compareTo(a)));
System.out.println(Collections.min(list));
System.out.println(Collections.min(list, (String a,String b)->b.compareTo(a)));
    }
}

在这里插入图片描述

Collections类 — 其他常用方法

public static void reverse(List<?> list)

功能:反转指定列表中元素的顺序。

public static <T> void fill(List<? super T> list, T obj)

功能:用指定的值obj替换指定列表的所有元素。

public static <T> void copy(List<? super T> dest, List<? extends T> src)

功能:将src中的元素复制到dest列表中。要求:dest列表长度≥src列表长度。

public static void swap(List<?> list, int i, int j)

功能:在指定的列表中的指定位置上交换元素。
博主用心写,读者点关注,互动传真情,知识不迷路。

  • 32
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值