携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情
\
List
添加顺序和取出顺序一致
List每个元素都有索引(从零开始)
public class practise {
public static void main(String[] args) {
List list=new ArrayList();
list.add("zhang");
list.add("lll");
list.add(0,"lll");
System.out.println(list);
List list1 = new ArrayList();
list1.add("bbb");
list1.add("aaa");
list.add(1,list1);
System.out.println(list);
System.out.println(list.indexOf("lll"));//获取第一次出现的位置
System.out.println(list.lastIndexOf("lll"));//最后一次出现的位置
System.out.println(list.remove(0));//移除0位置的元素
System.out.println(list.set(1,"weixiang"));//修改1上的元素,只能修改,不能添加
System.out.println(list.subList(0,2));//返回0,2的元素
}
}
List三种遍历方式
- iterator
- 增强for
- 普通for
-
package com.hspedu.list_; import java.util.*; /** * @author 韩顺平 * @version 1.0 */ public class ListFor { @SuppressWarnings({"all"}) public static void main(String[] args) { //List 接口的实现子类 Vector LinkedList //List list = new ArrayList(); 韩顺平循序渐进学 Java 零基础 第 620页 //List list = new Vector(); List list = new LinkedList(); list.add("jack"); list.add("tom"); list.add("鱼香肉丝"); list.add("北京烤鸭子"); //遍历 //1. 迭代器 Iterator iterator = list.iterator(); while (iterator.hasNext()) { Object obj = iterator.next(); System.out.println(obj); } System.out.println("=====增强 for====="); //2. 增强 for for (Object o : list) { System.out.println("o=" + o); } System.out.println("=====普通 for===="); //3. 使用普通 for for (int i = 0; i < list.size(); i++) { System.out.println("对象=" + list.get(i)); } } }
ArrayList基本等同于Veror,但ArrayList线程不安全
ArrayList和Linklist都是线程不安全的,所以在单线程,没有实现线程并发时再在这俩里面做选择
Map
package practise;
import java.util.HashMap;
import java.util.Map;
public class practise {
public static void main(String[] args) {
Map map=new HashMap();
map.put("no1","本伟");//k-V key不允许重复key(只能有一个null1),value可以重复(可以有多个null)
map.put("no2","dd");
map.put("no1","erzi");//有相同的key时等价于替换
//常用String作为key的类型,但是Object其他的类型也行
System.out.println(map);
System.out.println(map.get("no2"));//返回no2对应的value
}
}
Map遍历
package com.hspedu.map_;
import java.util.*;
/**
* @author 韩顺平
* @version 1.0
*/
@SuppressWarnings({"all"})
public class MapFor {
public static void main(String[] args) {
Map map = new HashMap();
map.put("邓超", "孙俪");
map.put("王宝强", "马蓉");
map.put("宋喆", "马蓉");
map.put("刘令博", null);
map.put(null, "刘亦菲");
map.put("鹿晗", "关晓彤");
//第一组: 先取出 所有的 Key , 通过 Key 取出对应的 Value
Set keyset = map.keySet();
//(1) 增强 for
System.out.println("-----第一种方式-------");
for (Object key : keyset) {
System.out.println(key + "-" + map.get(key));
}
//(2) 迭代器
System.out.println("----第二种方式--------");
Iterator iterator = keyset.iterator();
while (iterator.hasNext()) {
Object key = iterator.next();
System.out.println(key + "-" + map.get(key));
}
//第二组: 把所有的 values 取出
Collection values = map.values();
//这里可以使用所有的 Collections 使用的遍历方法
//(1) 增强 for
System.out.println("---取出所有的 value 增强 for----");
for (Object value : values) {
System.out.println(value);
}
//(2) 迭代器
System.out.println("---取出所有的 value 迭代器----");
Iterator iterator2 = values.iterator();
while (iterator2.hasNext()) {
Object value = iterator2.next();
韩顺平循序渐进学 Java 零基础
第 671页
System.out.println(value);
}
//第三组: 通过 EntrySet 来获取 k-v
Set entrySet = map.entrySet();// EntrySet<Map.Entry<K,V>>
//(1) 增强 for
System.out.println("----使用 EntrySet 的 for 增强(第 3 种)----");
for (Object entry : entrySet) {
//将 entry 转成 Map.Entry
Map.Entry m = (Map.Entry) entry;
System.out.println(m.getKey() + "-" + m.getValue());
}
//(2) 迭代器
System.out.println("----使用 EntrySet 的 迭代器(第 4 种)----");
Iterator iterator3 = entrySet.iterator();
while (iterator3.hasNext()) {
Object entry = iterator3.next();
//System.out.println(next.getClass());//HashMap$Node -实现-> Map.Entry (getKey,getValue)
//向下转型 Map.Entry
Map.Entry m = (Map.Entry) entry;
System.out.println(m.getKey() + "-" + m.getValue());
}
}
}
\