linkedList使用
基本方法回顾 2020-10-18
public class LinkedListDemo {
/**
* 已知数组存放一批扣扣号 最长为11位
* 最短为5位 数组定义 合理即可
* 将该数组里面的 所有扣扣号都存放在linkedList 当中 将list重复元素删除
* 将list中所有元素都用迭代器 和增强for循环打印出来
*
* 有了数组 就要设计到数组的遍历 和存放
*/
//写一个重复元素删除的方法
public static LinkedList quchong(LinkedList list) {
LinkedList qu =new LinkedList<>();
IteratorList= list.iterator();
while (List.hasNext()) {
String lt = List.next();
if (!qu.contains(lt)) {
qu.add(lt);
}
}
return qu;
}
public static void main(String[] args) {
//定义数组
String[] arr = {"12345","12345","54321","123456","654321","1234567890"};
//创建LinkedList 用于存放数组的
LinkedList linkedList =new LinkedList<>();
//遍历
for (String str : arr) {
//判断是否包含
//if (!linkedList.contains(args)){
//如果不包含 就把他存到linkedList中
linkedList.add(str);
//}
}
//调用重复元素的方法
//之前去重完之后要再把它放在list中 遍历循环输出
LinkedList quchonglist =quchong(linkedList);
//遍历linkedList 增强for循环打印输出
for (String qq : quchonglist) {
System.out.println(qq +"linkedList----去重");
}
//使用迭代器遍历
Iterator linked = quchonglist.iterator();
while (linked.hasNext()) {
//if (!linkedList.contains(arr)){
System.out.println(linked.next());
//}
}
}
}
hashSet的使用
public class HashSetTest {
/**
* 双色球的规则:双色球每注 投注号码由6个红色球号码和一个蓝色球号码组成
* 红色球号码在1-33中选择 蓝色球号码在1-16中选择 请随机生成一注双色球号码
* 要求同色号码不重复
*
* 分析:随机生成 Random
* 红色球 和蓝色球 应该是两个集合
* 号码不重复 去重是否包含?
* hashset不能存储重复的元素
* 回忆hashset 底层是数组加链表 equals和hashcode
* 不能存储相同的数据 存储数据时候是无序的 存储的数据顺序不是按照存入时的顺序存入的 和list不一样
*
* random.nextInt的使用
* random.nextInt(33) 范围是0~32 所以要加一 不加也行 ? 就是34?
*
*/
public static void main(String[] args) {
//随机产生数
Random random =new Random();
//创建hashSet 存储不同的元素
HashSet redset =new HashSet<>();
//判断红球是否小于6个
while (redset.size()<6){
//红色球
int red=random.nextInt(33)+1;
redset.add(red);
}
//蓝色球
int bull = random.nextInt(17);
// redset.add(bull);
System.out.println("中奖是:");
System.out.print("红球");
for (Integer reaBall: redset) {
System.out.println(reaBall+",,, ");
}
System.out.println(bull+"篮球");
}
}
Map接口的特点
键值对
键值不能重复
key value 可以为null
hashMap
package comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* @ClassName: MapDemo
* @Description:
* @Author: Zhangliya
* @CreateDate: 2020/10/22 16:43
* @Version 1.0
* @Copyright: Copyright2018-2020 Inc. All rights reserved.
**/
public class MapDemo {
/**
* Map接口的特点
* 双列集合
* key value键值对
* key value 都可以为空
* key 不能重复
*
* map接口中常用的方法
* put 添加元素
* get 获取元素
* remove
*
* 往一个Map中 添加若干的元素 获取Map中所有的value 并使用增强for和迭代器遍历输出每个value?
*/
public static void main(String[] args) {
//新建Map
// HashMap hashMap = new HashMap<>();
// hashMap.put("北京","真好");
// hashMap.put("南京","也好");
// hashMap.put("北京1","真好");
// hashMap.put("南京1","也好");
// for (Object value: hashMap.values() ) {
//
// System.out.println(value);
// }
// }
/**
* 使用Map集合存储自定义数据类型car做键 对应的价格做值 并使用keySet和EntrySet两种方式 遍历map
*
*
* 分析:
* 1.Map集合
* 2.自定义数据类型
* 3.car 做键 key=""car""?
* 4.遍历map的两种方式 不知道 !
* 5. car小汽车所以需要定义类
*
* map.value value值
*
* map中keyset 和Entryset遍历的区别
* keyset返回值是个存放的key值的set集合(集合中无序存放)
* keySet获取map集合的所有键的set集合 有了set集合 就可以使用迭代器
* entryset 返回映射所包含的映射关系的集合 (一个关系就是一个键值对) 就是把key value作为一个整体 一个一个的放进set集合中
*
*/
HashMap hashMap =new HashMap<>();
//添加车到hashMap中
MapDemocar baoma =new MapDemocar("宝马","23");
MapDemocar baoma1 =new MapDemocar("宝马1","255");
MapDemocar baoma2 =new MapDemocar("宝马","23");
hashMap.put(baoma,20);
hashMap.put(baoma1,2050);
hashMap.put(baoma2,2000);
//keyset 遍历
Set carSet = hashMap.keySet();
//tor iteratorCar = carSet.iterator();
// (iteratorCar.hasNext()){
//teratorCar.next();
for (MapDemocar aa : carSet) {
Integer value = hashMap.get(aa);
System.out.println(value);//20 2050 2000
}
System.out.println("--------------------------------------------------");
Set> entrySetcar = hashMap.entrySet();
for (Map.Entry entry : entrySetcar
) {
MapDemocar key = entry.getKey();
Integer value1 = entry.getValue();
System.out.println(key +"www" + value1);
}
}
}