数组实例:
package org.example.common;
public class ZongJie {
// 数组作为函数参数
public static void printArray(int[] array)
{
System.out.println(array.length);
System.out.println("--------------------111");
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println("--------------------222");
for (int i=0;i<array.length;i++)
{
System.out.println(array[i]);
}
System.out.println("--------------------333");
}
// 数组作为函数返回值
public static int[] calculate(int a,int b,int c)
{
int sum = a+b+c;
int avg = sum/3;
int[] array = {sum,avg};
System.out.println(array[0]);
System.out.println(array[1]);
return array;
}
public static void main(String[] args) {
int[] as = new int[4]; // 数组动态初始化,方式一
as[0] = 1;
as[1] = 2;
as[2] = 3;
as[3] = 4;
int[] ad; //数组动态初始化,方式二
ad = new int[10];
// -------------------------------------------------------------
String[] ab = {"a","b","c","d"}; // 数据静态初始化,指定长度
int[] aw = new int[] {1,2,3,4,5,6,7,8}; // 数据静态初始化,指定长度 --此为上一行模式的省略模式
// -------------------------------------------------------------
printArray(aw); // 函数调用,数组作为参数;
// -------------------------------------------------------------
System.out.println(calculate(1,2,3).length); //函数调用,数组作为返回值;
}
}
==============================================================================================================================
循环实例
package org.example.common.foruse;
public class ForUse {
public static void main(String[] args) {
for(int i=10;i<20;i++)
{
System.out.println(i);
}
System.out.println("---------------------000");
int i = 2;
while (i<10){
System.out.println(i);
i++;
}
System.out.println("---------------------111");
int j=2;
do{
System.out.println(j);
j++;
}while (j<5);
}
}
==============================================================================================================================
对象
package org.example.common;
public class Product {
String name;
int price;
public Product(String name, int price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "Product{" +
"name='" + name + '\'' +
", price=" + price +
'}';
}
}
==============================================================================================================================
List——arraylist——01
package org.example.common.list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* java.util.List接口 extends Collection接口
*
* List接口的特点:
* 1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)
* 2.有索引,包含了一些带索引的方法
* 3.允许存储重复的元素
*
* List接口中带索引的方法(特有)
*
* public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
* public E get(int index):返回集合中指定位置的元素。
* public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
* public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
*
* 注意:
* 操作索引的时候,一定要防止索引越界异常
*
* IndexOutOfBoundsException:索引越界异常,集合会报
* ArrayIndexOutOfBoundsException:数组索引越界异常
* StringIndexOutOfBoundsException:字符串索引越界异常
*
*
*
* LinkedList集合
*
* java.util.LinkedList集合 implements List接口
* ##** LinkedList集合的特点:**
* 1.底层是一个链表结构:查询慢,增删快
* 2.里边包含了大量操作首尾元素的方法
* 注意:使用LinkedList集合特有的方法,不能使用多态
*
* public void addFirst(E e):将指定元素插入此列表的开头。
*
* public void addLast(E e):将指定元素添加到此列表的结尾。
*
* public void push(E e):将元素推入此列表所表示的堆栈。
*
* public E getFirst():返回此列表的第一个元素。
*
* public E getLast():返回此列表的最后一个元素。
*
* public E removeFirst():移除并返回此列表的第一个元素。
*
* public E removeLast():移除并返回此列表的最后一个元素。
*
* public E pop():从此列表所表示的堆栈处弹出一个元素。
*
* public boolean isEmpty():如果列表不包含元素,则返回true。
*
*/
public class DemoListArrayList
{
public static void main(String[] args) {
//创建一个List集合对象,多态
List<String> list = new ArrayList<>();
//使用add方法往集合中添加元素
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("a");
//打印集合
System.out.println(list); //[a, b, c, d, a] 不是地址,是因为重写了toString
//public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
//在c和d之间添加一个itheima
list.add(3, "itheima"); //[a, b, c, itheima, d, a]
System.out.println(list);
//public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
//移除元素
String removeE = list.remove(2);
System.out.println("被移除的元素:" + removeE); //被移除的元素:c
System.out.println(list); //[a, b, itheima, d, a]
//public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
//把最后一个a,替换为A
String setE = list.set(4, "A");
System.out.println("被替换的元素:" + setE); //被替换的元素:a
System.out.println(list); //[a, b, itheima, d, A]
//List集合遍历有3种方式
//使用普通的for循环
for (int i = 0; i < list.size(); i++) {
//public E get(int index):返回集合中指定位置的元素。
String s = list.get(i);
System.out.println(s);
}
System.out.println("-----------------");
//使用迭代器
Iterator<String> it = list.iterator();
while (it.hasNext())
{
String s = it.next();
System.out.println(s);
}
}
}
==============================================================================================================================
List——arraylist——02
package org.example.common.listuse;
import org.example.common.Product;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListUse{
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
System.out.println(list); // [1, 2, 3, 4, 5]
System.out.println("------------------------");
System.out.println(list.size()); // 5
System.out.println(list.get(0)); // 1
System.out.println(list.get(4)); // 5
System.out.println("-------------------000");
for (int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
/**
* 1
* 2
* 3
* 4
* 5
*/
System.out.println("-----------------111");
List listProduct = new ArrayList<Product>();
Product product001 = new Product("ma001",100);
Product product002 = new Product("ma002",100);
Product product003 = new Product("ma003",100);
Product product004 = new Product("ma004",100);
Product product005 = new Product("ma005",100);
listProduct.add(product001);
listProduct.add(product002);
listProduct.add(product003);
listProduct.add(product004);
listProduct.add(product005);
System.out.println(listProduct.get(0));
System.out.println(listProduct.get(4));
System.out.println(listProduct);
/**
* Product{name='ma001', price=100}
* Product{name='ma005', price=100}
* [Product{name='ma001', price=100}, Product{name='ma002', price=100}, Product{name='ma003', price=100}, Product{name='ma004', price=100}, Product{name='ma005', price=100}]
*
*/
System.out.println("-----------------------222");
Iterator it = listProduct.iterator();
while (it.hasNext()){
Product ww = (Product)it.next();
System.out.println(ww.getName()+" "+ww.getPrice());
}
/**
* ma001 100
* ma002 100
* ma003 100
* ma004 100
* ma005 100
*/
System.out.println("--------------------------------333");
List<Product> as = new ArrayList<Product>();
Product product006 = null;
as.add(product006);
System.out.println(as.size());
System.out.println(as.get(0));
/**
* 1
* null
*
*/
System.out.println("----------------------------------------------------------");
Iterator itt = listProduct.iterator();
while (itt.hasNext()){
System.out.println(itt.next());
}
/**
*
* Product{name='ma001', price=100}
* Product{name='ma002', price=100}
* Product{name='ma003', price=100}
* Product{name='ma004', price=100}
* Product{name='ma005', price=100}
*/
}
}
==============================================================================================================================
Linkedlist——实例001
package org.example.common.list;
import java.util.LinkedList;
/**
* java.util.LinkedList集合 implements List接口
*
* ##** LinkedList集合的特点:**
* 1.底层是一个链表结构:查询慢,增删快
* 2.里边包含了大量操作首尾元素的方法
* 注意:使用LinkedList集合特有的方法,不能使用多态
*
*
*
* public void addFirst(E e):将指定元素插入此列表的开头。
*
* public void addLast(E e):将指定元素添加到此列表的结尾。
*
* public void push(E e):将元素推入此列表所表示的堆栈。
*
* public E getFirst():返回此列表的第一个元素。
*
* public E getLast():返回此列表的最后一个元素。
*
* public E removeFirst():移除并返回此列表的第一个元素。
*
* public E removeLast():移除并返回此列表的最后一个元素。
*
* public E pop():从此列表所表示的堆栈处弹出一个元素。
*
* public boolean isEmpty():如果列表不包含元素,则返回true。
*/
public class DemoListLinkedList
{
public static void main(String[] args)
{
show03();
System.out.println("--------------------");
show02();
System.out.println("--------------------");
show01();
}
/*
- public E removeFirst():移除并返回此列表的第一个元素。
- public E removeLast():移除并返回此列表的最后一个元素。
- public E pop():从此列表所表示的堆栈处弹出一个元素。此方法相当于 removeFirst
*/
private static void show03()
{
//创建LinkedList集合对象
LinkedList<String> linked = new LinkedList<>();
//使用add方法往集合中添加元素
linked.add("a");
linked.add("b");
linked.add("c");
System.out.println(linked); //[a, b, c]
//String first = linked.removeFirst();
String first = linked.pop();
System.out.println("被移除的第一个元素:"+first);
String last = linked.removeLast();
System.out.println("被移除的最后一个元素:"+last);
System.out.println(linked);//[b]
}
/*
- public E getFirst():返回此列表的第一个元素。
- public E getLast():返回此列表的最后一个元素。
*/
private static void show02()
{
//创建LinkedList集合对象
LinkedList<String> linked = new LinkedList<>();
//使用add方法往集合中添加元素
linked.add("a");
linked.add("b");
linked.add("c");
//linked.clear();//清空集合中的元素 在获取集合中的元素会抛出NoSuchElementException
//public boolean isEmpty():如果列表不包含元素,则返回true。
if(!linked.isEmpty())
{
String first = linked.getFirst();
System.out.println(first);//a
String last = linked.getLast();
System.out.println(last);//c
}
}
/*
- public void addFirst(E e):将指定元素插入此列表的开头。
- public void addLast(E e):将指定元素添加到此列表的结尾。
- public void push(E e):将元素推入此列表所表示的堆栈。此方法等效于 addFirst(E)。
*/
private static void show01()
{
//创建LinkedList集合对象
LinkedList<String> linked = new LinkedList<>();
//使用add方法往集合中添加元素
linked.add("a");
linked.add("b");
linked.add("c");
System.out.println(linked);//[a, b, c]
//public void addFirst(E e):将指定元素插入此列表的开头。
//linked.addFirst("www");
linked.push("www");
System.out.println(linked);//[www, a, b, c]
//public void addLast(E e):将指定元素添加到此列表的结尾。此方法等效于 add()
linked.addLast("com");
System.out.println(linked);//[www, a, b, c, com]
}
}
==============================================================================================================================
Linkedlist——实例002
package org.example.common;
import java.util.Iterator;
import java.util.LinkedList;
public class ZongJie {
public static void main(String[] args) {
//创建LinkedList集合对象
LinkedList<String> linked = new LinkedList<>();
//使用add方法往集合中添加元素
linked.add("a");
linked.add("b");
linked.add("c");
System.out.println(linked); //[a, b, c]
System.out.println("----------------------------------111");
Iterator it = linked.iterator();
while (it.hasNext())
{
System.out.println(it.next());
}
System.out.println("----------------------------------222");
//String first = linked.removeFirst();
String first = linked.pop();
System.out.println("被移除的第一个元素:"+first);
System.out.println("----------------------------------333");
String last = linked.removeLast();
System.out.println("被移除的最后一个元素:"+last);
System.out.println("----------------------------------444");
System.out.println(linked);//[b]
System.out.println("----------------------------------555");
}
}
==============================================================================================================================
set集合
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
HashSet 允许有 null 值。
HashSet 是无序的,即不会记录插入的顺序。
HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。
package org.example.common.set;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
*Set集合的概述
*
* java.util.Set接口和java.util.List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。
*
* 与List接口不同的是,Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。
*
*
* Set集合有多个子类,这里我们介绍其中的java.util.HashSet、java.util.LinkedHashSet这两个集合。
*
* tips:Set集合取出元素的方式可以采用:迭代器、增强for。
*
*
*
*
*
*
*HashSet集合介绍
*
* java.util.Set接口 extends Collection接口
*
* Set接口的特点:
* 1.不允许存储重复的元素
* 2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
*
* java.util.HashSet集合 implements Set接口
*
* HashSet特点:
* 1.不允许存储重复的元素
* 2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历
* 3.是一个无序的集合,存储元素和取出元素的顺序有可能不一致
* 4.底层是一个哈希表结构(查询的速度非常的快)
*
*
*
*/
public class DemoSetHashSet
{
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
//使用add方法往集合中添加元素
set.add(1);
set.add(3);
set.add(2);
set.add(1);
//使用迭代器遍历set集合
Iterator<Integer> it = set.iterator();
while (it.hasNext())
{
Integer n = it.next();
System.out.println(n); //1,2,3
}
//使用增强for遍历set集合
System.out.println("-----------------");
for (Integer i : set)
{
System.out.println(i);
}
}
}
==============================================================================================================================
package org.example.common;
import java.util.Objects;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package org.example.common.set;
import org.example.common.Person;
import java.util.HashSet;
/**
*HashSet存储自定义类型元素
*
* HashSet存储自定义类型元素
*
* set集合必须元素唯一:
*
* 存储的元素(String,Integer,...Student,Person...),必 须重写hashCode方法和equals方法
*
* 要求:
* 同名同年龄的人,视为同一个人,只能存储一次
*
*
*/
public class DemoSetHashSetForOne {
public static void main(String[] args) {
//创建HashSet集合存储Person
HashSet<Person> set = new HashSet<>();
Person p1 = new Person("小美女",18);
Person p2 = new Person("小美女",18);
Person p3 = new Person("小美女",19);
System.out.println(p1.hashCode());//1967205423
System.out.println(p2.hashCode());//42121758
System.out.println(p1==p2);//false
System.out.println(p1.equals(p2));//false
set.add(p1);
set.add(p2);
set.add(p3);
System.out.println(set);
}
}
package org.example.common.set;
import java.util.HashSet;
import java.util.LinkedHashSet;
/**
*
* LinkedHashSet集合
*
* java.util.LinkedHashSet集合 extends HashSet集合
*
* LinkedHashSet集合特点:
* 底层是一个哈希表(数组+链表/红黑树)+链表:多了一条链表(记录元素的存储顺序),保证元素有序
*
*
*
*
*
*
*/
public class DemoSetLinkedHashSet {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>();
set.add("www");
set.add("abc");
set.add("abc");
set.add("itcast");
System.out.println(set); //[abc, www, itcast] 无序,不允许重复
LinkedHashSet<String> linked = new LinkedHashSet<>();
linked.add("www");
linked.add("abc");
linked.add("abc");
linked.add("itcast");
System.out.println(linked); //[www, abc, itcast] 有序,不允许重复
}
}
==============================================================================================================================
map——01
package org.example.common.map;
import java.util.HashMap;
import java.util.Map;
/**
* Map集合的概述
*
* Map集合的特点
* java.util.Map集合
* Map集合的特点:
* 1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
* 2.Map集合中的元素,key和value的数据类型可以相同,也可以不同
* 3.Map集合中的元素,key是不允许重复的,value是可以重复的
* 4.Map集合中的元素,key和value是一一对应
*
*
*Map常用子类——————————java.util.HashMap集合 implements Map接口
*
*
*HashMap集合的特点:
* 1.HashMap集合底层是哈希表:查询的速度特别的快
* JDK1.8之前:数组+单向链表
* JDK1.8之后:数组+单向链表|红黑树(链表的长度超过8):提高查询的速度
*
* 2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
*
*
* java.util.LinkedHashMap集合 extends HashMap集合
* LinkedHashMap的特点:
* 1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
* 2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
*
*
*
*
*
*
* Map接口中的常用方法
*
* Map接口中定义了很多方法,常用的如下:
*
* public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
*
* public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
*
* public V get(Object key)根据指定的键,在Map集合中获取对应的值。
*
* boolean containsKey(Object key)判断集合中是否包含指定的键。
*
* public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。
*
* public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。
*
*/
public class DemoMap
{
private static void show02 ()
{
//创建Map集合对象
Map<String, Integer> map = new HashMap<>();
map.put("赵丽颖", 168);
map.put("杨颖", 165);
map.put("林志玲", 178);
System.out.println(map); //{林志玲=178, 赵丽颖=168, 杨颖=165}
Integer v1 = map.remove("林志玲");
System.out.println("v1:" + v1); //v1:178
System.out.println(map);//{赵丽颖=168, 杨颖=165}
//int v2 = map.remove("林志颖");//自动拆箱 NullPointerException
Integer v2 = map.remove("林志颖");
System.out.println("v2:" + v2); //v2:null
System.out.println(map);//{赵丽颖=168, 杨颖=165}
}
/*
public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
返回值:v
存储键值对的时候,key不重复,返回值V是null
存储键值对的时候,key重复,会使用新的value替换map中重复的value,返回被替换的value值
*/
private static void show01 ()
{
//创建Map集合对象,多态
Map<String, String> map = new HashMap<>();
String v1 = map.put("李晨", "范冰冰1");
System.out.println("v1:" + v1); //v1:null
String v2 = map.put("李晨", "范冰冰2");
System.out.println("v2:" + v2); //v2:范冰冰1
System.out.println(map);//{李晨=范冰冰2}
map.put("冷锋", "龙小云");
map.put("杨过", "小龙女");
map.put("尹志平", "小龙女");
System.out.println(map);//{杨过=小龙女, 尹志平=小龙女, 李晨=范冰冰2, 冷锋=龙小云}
}
public static void main(String[] args)
{
show02();
System.out.println("--------------");
show01();
}
}
{林志玲=178, 赵丽颖=168, 杨颖=165}
v1:178
{赵丽颖=168, 杨颖=165}
v2:null
{赵丽颖=168, 杨颖=165}
--------------
v1:null
v2:范冰冰1
{李晨=范冰冰2}
{杨过=小龙女, 尹志平=小龙女, 李晨=范冰冰2, 冷锋=龙小云}
====================================================================================================================
map——02
package org.example.common;
import java.util.Objects;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package org.example.common.map;
import org.example.common.Person;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
*
*HashMap存储自定义类型键值
*Map集合保证key是唯一的:
*作为key的元素,必须重写hashCode方法和equals方法,以保证key唯一
*
*/
public class DemoMapForCustomObject {
public static void main(String[] args) {
show02();
System.out.println("-----------------");
show01();
}
/*
HashMap存储自定义类型键值
key:Person类型
Person类就必须重写hashCode方法和equals方法,以保证key唯一
value:String类型
可以重复
*/
private static void show02() {
//创建HashMap集合
HashMap<Person,String> map = new HashMap<>();
//往集合中添加元素
map.put(new Person("女王",18),"英国");
map.put(new Person("秦始皇",18),"秦国");
map.put(new Person("普京",30),"俄罗斯");
map.put(new Person("女王",18),"毛里求斯");
//使用entrySet和增强for遍历Map集合
Set<Map.Entry<Person, String>> set = map.entrySet();
for (Map.Entry<Person, String> entry : set) {
Person key = entry.getKey();
String value = entry.getValue();
System.out.println(key+"-->"+value);
}
}
/*
HashMap存储自定义类型键值
key:String类型
String类重写hashCode方法和equals方法,可以保证key唯一
value:Person类型
value可以重复(同名同年龄的人视为同一个)
*/
private static void show01() {
//创建HashMap集合
HashMap<String,Person> map = new HashMap<>();
//往集合中添加元素
map.put("北京",new Person("张三",18));
map.put("上海",new Person("李四",19));
map.put("广州",new Person("王五",20));
map.put("北京",new Person("赵六",18));
//使用keySet加增强for遍历Map集合
Set<String> set = map.keySet();
for (String key : set) {
Person value = map.get(key);
System.out.println(key+"-->"+value);
}
}
}
package org.example.common.map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
*
*
*Map集合遍历键找值方式
*
* Map集合的第一种遍历方式:通过键找值的方式
*
* Map集合中的方法:
* SetkeySet() 返回此映射中包含的键的 Set 视图。
* 实现步骤:
* 1.使用Map集合中的方法keySet(),把Map集合所有的key取出来,存储到一个Set集合中
* 2.遍历set集合,获取Map集合中的每一个key
* 3.通过Map集合中的方法get(key),通过key找到value
*
*
*
*
*
*/
public class DemoMapUseKeyFindValueMethod {
public static void main(String[] args)
{
//创建Map集合对象
Map<String,Integer> map = new HashMap<>();
map.put("赵丽颖",168);
map.put("杨颖",165);
map.put("林志玲",178);
//1.使用Map集合中的方法keySet(),把Map集合所有的key取出来,存储到一个Set集合中
Set<String> set = map.keySet();
//2.遍历set集合,获取Map集合中的每一个key
//使用迭代器遍历Set集合
Iterator<String> it = set.iterator();
while (it.hasNext())
{
String key = it.next();
//3.通过Map集合中的方法get(key),通过key找到value
Integer value = map.get(key);
System.out.println(key+"="+value);
}
System.out.println("-------------------");
//使用增强for遍历Set集合
for(String key : set)
{
//3.通过Map集合中的方法get(key),通过key找到value
Integer value = map.get(key);
System.out.println(key+"="+value);
}
System.out.println("-------------------");
//使用增强for遍历Set集合
for(String key : map.keySet())
{
//3.通过Map集合中的方法get(key),通过key找到value
Integer value = map.get(key);
System.out.println(key+"="+value);
}
}
}
package org.example.common.map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
*
* https://www.kancloud.cn/jysxr/yx101/2168759
*Map集合遍历键值对方法
*
* Map集合遍历的第二种方式:使用Entry对象遍历
*
* Map集合中的方法:
* Set> entrySet() 返回此映射中包含的映射关系的 Set 视图。
*
* 实现步骤:
* 1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
* 2.遍历Set集合,获取每一个Entry对象
* 3.使用Entry对象中的方法getKey()和getValue()获取键与值
*
*
*/
public class DemoMapUseKeyFindValueMethod002
{
public static void main(String[] args) {
//创建Map集合对象
Map<String,Integer> map = new HashMap<>();
map.put("赵丽颖",168);
map.put("杨颖",165);
map.put("林志玲",178);
//1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
Set<Map.Entry<String, Integer>> set = map.entrySet();
//2.遍历Set集合,获取每一个Entry对象
//使用迭代器遍历Set集合
Iterator<Map.Entry<String, Integer>> it = set.iterator();
while(it.hasNext()){
Map.Entry<String, Integer> entry = it.next();
//3.使用Entry对象中的方法getKey()和getValue()获取键与值
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key+"="+value);
}
System.out.println("-----------------------");
for(Map.Entry<String,Integer> entry:set){
//3.使用Entry对象中的方法getKey()和getValue()获取键与值
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key+"="+value);
}
}
}