list,map,hashset

本文详细介绍了Java集合框架中的List、Set和Map三种主要的数据结构。包括ArrayList的特点与使用方法、HashSet的基本特性和遍历方式,以及HashMap的工作原理和示例代码。

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

1.List:有序的 collection(也称为序列)。此接口可以对列表中每个元素的插入位置进行精确地控制。可以根据元素的在列表中的位置访问元素,并搜索列表中的元素。列表允许重复的元素。

   ArrayList:
   特点:有序的、线性的、无固定大小的、有下标的、先进先出
  public static void main(String args[]) {
  // 创建一个队列对象
  java.util.ArrayList<String> list = new java.util.ArrayList<String>();
  // 装入10个数据
  for (int i = 0; i < 10; i++) {
   String s = "元素" + i;
   //加元素
   list.add(s);
  }
  // 遍历1
  for (int i = 0; i < list.size(); i++) {
   // 根据下标取出一个元素
   String str = list.get(i);
   System.out.print(str+"\t");
  }
  System.out.println();
  //遍历2
  //得到队列的迭代器对象
  java.util.Iterator<String> iter = list.iterator();
  //判断是否有数据可以迭代
  while(iter.hasNext()){
   //取出一个元素
   String str = iter.next();
   System.out.print(str+"\t");
  }
  System.out.println();
  //遍历3
  for(String str:list){
   System.out.print(str+"\t");
  }
 }
 
2.Set:是简单的集合,它的对象不按特定方式排序,只是简单的把对象加入集合中。不能有重复对象。
HashSet:特点:无序的,长度可变的,不可重复的
public static void main(String args[]) {
  // 创建一个容器对象
  java.util.HashSet<String> sets = new java.util.HashSet<String>();
  // 装入10个元素
  for (int i = 0; i < 10; i++) {
   String s = "元素a" + i;
   sets.add(s);
  }
  //检验若输入加入重复的元素,在集合中的是原来的还是新加入的(结果表明是原来的)
  boolean b = sets.add("新来的");
  boolean b1 = sets.add("新来的");
  System.out.println(b + "<>" + b1);
  // 遍历1
  // 得到迭代器对象
  java.util.Iterator<String> iter = sets.iterator();
  while (iter.hasNext()) {
   String str = iter.next();
   System.out.print(str + "\t");
  }
  System.out.println();

  //遍历2
  for(String str:sets){
   System.out.print(str+"\t");
  }

 }
 
3.Map:Map中存入的对象是一对一对的,即每个对象和它的一个名字(键:key)关联在一起,一个键(key)只能对应一个值(value),反则不然。
  HashMap:
  特点:无序的、不可重复的
  public static void main(String args[]) {
  // 创建一个映射对象
  java.util.HashMap<Integer, String> maps = new java.util.HashMap<Integer, String>();
  // 装入键值对
  for (int i = 0; i < 20; i++) {
   int num = i * 1000;
   String name = "学生" + i;
   // 装入一个键值对
   maps.put(num, name);
  }
  //增加一个键值对,加入K相同的键值对,则会替换已经存在的键值对
  maps.put(30000, "新学生");
  maps.put(40000, "新学生");
  maps.put(40000, "又来一个");
   
  //遍历
  //得到K的Set集合
  java.util.Set<Integer> set = maps.keySet();
  //遍历K的集合,得到set的迭代器
  java.util.Iterator<Integer> iter = set.iterator();
  while(iter.hasNext()){
   //取出一个key
   int num = iter.next();
   //根据key得到对应的Value
   String name = maps.get(num);
   System.out.println(num+"\t"+name);
  }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30180323/viewspace-2144780/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30180323/viewspace-2144780/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值