HashSet(11.28)

本文深入探讨了Java集合框架中的HashSet, ArrayList及Map的特性与使用方法,包括元素的添加、删除、查找,以及如何利用迭代器和增强for循环进行遍历。同时,文章对比了不同集合类型的特点,如HashSet的不可重复元素存储,ArrayList的动态数组结构,以及Map的键值对存储方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static void main(String[] args) {
  // TODO Auto-generated method stub
  HashSet<String> set =new HashSet<String>();
  set.add("aaa");    //增
  set.add("aaa");
  set.size();
  set.remove("aaasdf");
  set.contains("adsdf");  
  set.isEmpty();
  set.toArray();
//  set  没有查询,因为没有下标概念,是map的特征
//  set  储存不可重复  是map的特征
//  set  没有修改  只能删除后重新加入新数据  是map特征
//  java的集合中是有list   map    set完全调用哈希map
//  map没有ineratoe接口,不能遍历,set通过调用接口实现遍历,就是一下子就取出来集合里的
//  interator  迭代器,,遍历,

Iterator<String> it= set.iterator();
  while(it.hasNext()){
   String str=it.next();
  }
//  加强for循环↓    等于26行到29行的写法。
  for (String  str:set) {
   System.out.println(str);
   str="fef";
  }
  for (String  str:set) {
   System.out.println(str);   
  }
// 想使用迭代器或者增强for循环,首先要遍历的集合实现了Itertor接口,所以map类不可遍历
// 迭代器实现是将所有数据copy到新空间,进行序列化,就是排队。让多维度结构降维到一维,但是这个过程会出现一个问题
//我们在迭代器中获得的遍历数组都是元素数据的镜像数据,更改迭代器中获得的数据不会修原数据。例如33行
//但是如果这个镜像数据中有引用数据类型的变量,这个变量指向位置的数据会被修改。
//  所有迭代器中无法改变数据,也不应该去改变数据,使用迭代器目的就是遍历,如果存到集合中的数据要批量化修改,那么数据就没有意义直接清空就可以
// 重新录入数据,如果是向批量修改每个数据中某个属性,迭代器是允许的。


// 练习
  ArrayList<String> str=new ArrayList<String>();
  str.add("233");
  str.add("23fgs3");
  str.add("23f");
  str.add("23w3");
  for (String string : str) {
   System.out.println(str+"=====");
  }
 String[] strs=new String[1000];
 for (String string : strs) {
  System.out.println(str);
 }
HashSet<String> map=new HashSet<String>();
 /*
  * map.entrySet();   entry  键值对  key,value
  * map.values(); 获得所有的值
  * map.keySet();   获得所有的键
  * 遍历map
  * 第一种方式   获取map中所有的键值对,保存到set中,遍历set,拿出每个entry,再从entry中分别获得key和value 
  */
  Set<Entry<String,Integer>> set1=map.entrySet();
 for(Entry<String,Integer> entry:set1){
  System.out.println("key="+entry.getKey());
  System.out.println("\tvalue"+entry.getValue());


/*
  * 第二种方式    获取map中所有的键,保存到set中,遍历set拿出每个key。再从map中获取key对应的value值 
  */
  for (String string : keys) {
   System.out.println("key="+string);
   System.out.println("\tvalue"+map.get(string));
  }

/**
   *第三种方式,(只能遍历出value)获取map中所有的value,保存到collection中,遍历collection
   */
   Collection<Integer> col=map.values();
  for (Integer integer : col) {
   System.out.println(integer);
  }
 }
 }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值