JavaSEDemo26集合与垃圾回收机制

java对象创建与回收demo 讲述了java对象创建的详细过程,涉及到内存中是如何存储的,以及垃圾回收方式 立即下载

练习题

练习1

题目
请使用LinkedList来模拟一个堆栈或者队列数据结构。
答案
堆栈

import java.util.LinkedList;

public class MyStack<E> {
    private LinkedList<E> list=new LinkedList<>();

    public LinkedList<E> getList() {
        return list;
    }

    public void setList(LinkedList<E> list) {
        this.list = list;
    }
    public void push(E e){
        this.list.addFirst(e);
    }
    public E pop(){
        return this.list.pollFirst();
    }

    @Override
    public String toString() {
        return "MyStack{" +
                "list=" + list +
                '}';
    }
    public static void main(String[] args){
        MyStack<String> myStack = new MyStack<>();
        myStack.push("刘备");
        myStack.push("关羽");
        myStack.push("张飞");
        System.out.println("myStack = " + myStack);
        System.out.println("myStack.pop() = " + myStack.pop());
        System.out.println("myStack = " + myStack);
    }
}

队列

import java.util.LinkedList;

public class Queue<E> {
   private LinkedList<E> list = new LinkedList<>();

   public LinkedList<E> getList() {
      return list;
   }

   public void setList(LinkedList<E> list) {
      this.list = list;
   }
    public void add(E e){
       list.addLast(e);
    }
    public E poll() {
       return list.pollFirst();
   }

   @Override
   public String toString() {
      return "Stack [list=" + list + "]";
   }
    public static void main(String[] args){
      Queue<String> stack = new Queue<>();
      stack.add("刘东月");
      stack.add("徐培杰");
      stack.add("刘博");
      System.out.println(stack);
      System.out.println("---------");
      System.out.println(stack.poll());
      System.out.println(stack);
      System.out.println("---------");
      System.out.println(stack.poll());
      System.out.println(stack);
    }
}

练习2

题目:
用TreeSet存储以下数据:
“xiaoqiang”、 “zhangsan”、“lisi”、“xiaohua”、 “ruhua”、 “wangcai”
要求按照字符串的长度进行排序后再存储(如果长度相同,则按字符串的自然顺序排序)
答案:

@Test
public void test1() {
    TreeSet<String> set = new TreeSet<>(new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            int i = o1.length() - o2.length();
            int j = o1.compareTo(o2);
            return i==0?j:i;
        }
    });
    set.add("xiaoqiang");
    set.add("zhangsan");
    set.add("lisi");
    set.add("xiaohua");
    set.add("ruhua");
    set.add("wangcai");
    System.out.println("set = " + set);
}

练习3

题目
List对象中存放多个Person对象(此对象包含,名字,年龄、id)。按Person的年龄从小到大排序,假设年龄相等的话再按名字的大小来排序。求出年龄最大的那个学生信息。
答案

public class Person {
    private int id;
    private String name;
    private int age;

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public Person(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Person() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    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;
    }
}


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Test {
    public static void main(String[] args){
        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person(1,"tom",20));
        list.add(new Person(2,"aom",20));
        list.add(new Person(3,"bom",18));
       /* Collections.sort(list, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                int i = o1.getAge() - o2.getAge();
                int j = o1.getName().compareTo(o2.getName());
                return i==0?j:i;
            }
        });*/
        list.sort(new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                int i = o1.getAge() - o2.getAge();
                int j = o1.getName().compareTo(o2.getName());
                return i==0?j:i;
            }
        });
        System.out.println(list);
    }
}



练习4

题目
“chenhao”
“zhangsan”
“zhangsan”
“chenhao”
“lisi”
“wangwu”
“zhaoliu”
“xiaoqiang”
“haha”
打印输出各个字符串出现的次数(使用HashMap实现,键保存字符串,值保存保存出现的次数)

public static void main(String[] args){
    String[] arr=new String[]{"chenhao","zhangsan","zhangsan","chenhao"
    ,"lisi","wangwu","zhaoliu","xiaoqiang","haha"};
    HashMap<String, Integer> map = new HashMap<>();
    for (String s : arr) {
        Integer count = map.get(s);
        if (count==null){
            map.put(s,1);
        }else {
            map.put(s,map.get(s)+1);
        }
    }
    for (Map.Entry<String, Integer> entry : map.entrySet()) {
        System.out.println(entry.getKey()+"="+entry.getValue());
    }
}

练习5

题目
“asdascveasrgdfsdf”获取该字符串中,每一个字母出现的次数。
要求:打印结果是:a(2)b(1)…
答案

@Test
public void test2() {
    char[] chars = "asdascveasrgdfsdf".toCharArray();
    TreeMap<Character, Integer> map = new TreeMap<>();
    for (char c : chars) {
        Integer count = map.get(c);
        if (count==null){
            map.put(c,1);
        }else{
            map.put(c,map.get(c)+1);
        }
    }
    for (Map.Entry<Character, Integer> entry : map.entrySet()) {
        System.out.print(entry.getKey() +"("+ entry.getValue()+")");
    }
}

练习6

题目
随机产生50个30到35的整数,统计每个数字出现的次数(TreeMap实现),输出时按照数字的降序排列,并且统计出现次数最多的数字和它的次数。
PS:如果有两个数字出现的次数一样,则只需输出其中一个。
答案

@Test
public void test1() {
    Random random = new Random();
    TreeMap<Integer, Integer> map = new TreeMap<>(new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o2.compareTo(o1);
        }
 });
    for (int i = 0; i < 50; i++) {
        int n = random.nextInt(6) + 30;
        Integer count = map.get(n);
        if (count==null){
            map.put(n,1);
        }else{
            map.put(n,count+1);
        }
    }
    Integer maxKey=0;
    Integer maxValue=0;
    for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
        System.out.println(entry.getKey()+":"+entry.getValue());
        if (entry.getValue()>maxValue){
            maxValue=entry.getValue();
            maxKey=entry.getKey();
        }
    }
    System.out.println("出现次数最多的数是:"+maxKey+",出现了"+maxValue+"次");

}

练习7

题目
创建购物车实体类,模拟购物车功能需求:

  1. 添加商品到购物车(输入商品的编号和数量)
  2. 删除商品(删除购物车中的指定购物项)
  3. 修改商品(修改商品的数量)
  4. 显示所购买的商品信息(按购买商品的总价进行升序显示)
    答案

Product类

public class Product {
    private int  id;
    private String name;// 名称
    private int count;//数量
 private double price;//单价

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public Product() {
    }

    public Product(int id, String name, int count) {
        this.id = id;
        this.name = name;
        this.count = count;
    }

    public Product(int id, String name, int count, double price) {
this.id = id;
        this.name = name;
        this.count = count;
        this.price = price;
    }

    @Override
    public String toString() {
        return id+"----"+name+"----"+count;
    }
}

Cart类

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

public class Cart {
    private Map<Integer, CartItem> map=new HashMap<>();
    private double total;

    public double getTotal() {
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }

    //得到购物车的集合
    public Collection<CartItem> getCartItems(){
        return map.values();
    }
    //添加购物车
    public void add(CartItem cartItem){
        Product product = cartItem.getProduct();//得到购买的商品对象
        int id = product.getId();//得到商品的id
        //到map取得 id对应的购物项
        CartItem cartItem1 = map.get(id);
       if (cartItem1!=null){//原来买过
           cartItem1.setCount(cartItem1.getCount()+cartItem.getCount());//原来的count+新买的count
       }
       else {//原来没买过
            map.put(id,cartItem);//直接往里放
        }
       setTotal(total+cartItem.getSubTotal());//原来的总价+新购物的小计
    }
    //删除购物车
    public void remove(Integer id){
        CartItem cartItem = map.remove(id);
        setTotal(total-cartItem.getSubTotal());//原来的总价-删除的购物项的小计
    }
    //清空购物车
    public void clear(){
        map.clear();
        setTotal(0);
    }

    public void update(int id, int count) {
        CartItem cartItem = map.get(id);
        if (cartItem!=null){
            setTotal(total-cartItem.getSubTotal());
            cartItem.setCount(count);
            setTotal(total+cartItem.getSubTotal());
        }
    }
}


CartItem类

public class CartItem {
    private Product product;//购买的商品
    private int count;//购买的数量
    private double subTotal;//小计

    @Override
    public String toString() {
        return  product.getId() +"\t"+product.getName()+"\t"+product.getPrice()+"\t"+count+"\t"+getSubTotal();
    }

    public CartItem(Product product, int count) {
        this.product = product;
        this.count = count;
    }
 public CartItem() {
    }

    public Product getProduct() {
        return product;
    }

    public void setProduct(Product product) {
        this.product = product;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public double getSubTotal() {
        return product.getPrice()*count;
    }

    public void setSubTotal(double subTotal) {
        this.subTotal = subTotal;
    }
}

ProductNotEnoughException类

package a00;

public class ProductNotEnoughException extends Exception {
    public ProductNotEnoughException(String message) {
        super(message);
    }

    public ProductNotEnoughException() {
    }
}

ProductNotExistException类

public class ProductNotExistException extends Exception {
    public ProductNotExistException(String message) {
        super(message);
 }

    public ProductNotExistException() {
    }
}

Shop类

import java.util.Collection;

public class Shop {
    private Cart cart=new Cart();
    private Product[] products=new Product[]{
            new Product(1,"黄瓜",10,2),
            new Product(2,"西红柿",10,3),
            new Product(3,"菠萝",10,2),
            new Product(4,"苹果",10,5),
            new Product(5,"桔子",10,3),
    };
    public void buy(int id, int count) throws ProductNotExistException, ProductNotEnoughException {
        //遍历数组判断用户输入id在商品数组中,不存在抛异常:商品不存在
        boolean flag=false;
        for (Product product : products) {
            if (product.getId()==id){
                flag=true;
                break;
            }
        }
        if (flag==false){
            throw new ProductNotExistException("商品不存在");
        }
        //遍历数组判断商品数量是否<=库存的商品数量,如果抛出商品库存不够异常
        for (Product product : products) {
            if (product.getId()==id && count>product.getCount()){
                throw new ProductNotEnoughException("商品库存不够");
            }
        }
        //将数组对应的商品数量减购买数量
        for (Product product : products) {
            if (product.getId()==id ){
                product.setCount(product.getCount()-count);
                System.out.println("购买成功");
                //添加购物车的入口
  CartItem cartItem = new CartItem();
                cartItem.setProduct(product);
                cartItem.setCount(count);
                cart.add(cartItem);
                showCartList();
                break;
            }
        }
    }
    //show()显示商品列表
    public void show(){
        System.out.println("请选择商品序号:");
        for (Product product : products) {
            System.out.println(product);
        }
    }
    public void menu(){
        System.out.println("1.添加商品到购物车");
        System.out.println("2.删除商品");
        System.out.println("3.修改商品");
        System.out.println("4.查看购物车");
    }
    //show()显示购物车列表
    public void showCartList(){
       System.out.println("购物车列表:");
Collection<CartItem> cartItems = cart.getCartItems();
TreeSet<CartItem> set = new TreeSet<>(new Comparator<CartItem>() {
        @Override
        public int compare(CartItem o1, CartItem o2) {
            return Double.compare(o1.getSubTotal(),o2.getSubTotal());
        }
    });
    set.addAll(cartItems);
    System.out.println("id\tname\tprice\tcount\tsubtotal");
    for (CartItem cartItem : set) {
        System.out.println(cartItem);
}
System.out.println("总价格:"+cart.getTotal());
    }

    public void remove(int id) {
        cart.remove(id);
    }
 public void update(int id, int count) {
        cart.update(id,count);
    }
}

TestMain类

import java.util.Scanner;

public class TestMain {
    public static void main(String[] args) {
        //创建商店对象
        Shop shop = new Shop();
        //创建用户对象
        User user = new User(shop);
        //创建Scanner对象
        Scanner scanner = new Scanner(System.in);
        while (true){
            shop.menu();
            System.out.println("请输入功能编号:");
            int i = scanner.nextInt();
            switch(i){
                case 1:
                    shop.show();
                    System.out.println("请输入商品id:");
                    int id = scanner.nextInt();
                    System.out.println("请输入购买数量:");
                    int count = scanner.nextInt();
                    //调用user对象的buy()
                    user.buy(id,count);
                    shop.show();
                    break;
                case 2:
                    System.out.println("请输入商品id:");
                    int id2 = scanner.nextInt();
                    shop.remove(id2);
                    break;
                case 3:
                     System.out.println("请输入商品id:");
                    id = scanner.nextInt();
                    System.out.println("请输入购买数量:");
                    count = scanner.nextInt();
                    shop.update(id,count);
                    break;
package a00;

import java.util.Scanner;

public class TestMain {
    public static void main(String[] args) {
        //创建商店对象
        Shop shop = new Shop();
        //创建用户对象
        User user = new User(shop);
        //创建Scanner对象
        Scanner scanner = new Scanner(System.in);
        while (true){
            shop.menu();
            System.out.println("请输入功能编号:");
            int i = scanner.nextInt();
            switch(i){
                case 1:
                    shop.show();
                    System.out.println("请输入商品id:");
                    int id = scanner.nextInt();
                    System.out.println("请输入购买数量:");
                    int count = scanner.nextInt();
                    //调用user对象的buy()
                    user.buy(id,count);
                    shop.show();
                    break;
                case 2:
                    System.out.println("请输入商品id:");
                    int id2 = scanner.nextInt();
                    shop.remove(id2);
                    break;
                case 3:
                     System.out.println("请输入商品id:");
                    id = scanner.nextInt();
                    System.out.println("请输入购买数量:");
                    count = scanner.nextInt();
                    shop.update(id,count);
                    break;
                case 4:
                    shop.showCartList();
                    break;
                default:
                    break;
            }


        }
    }
}


User类

public class User {
   private Shop shop;

    public User() {
    }

    public User(Shop shop) {
        this.shop = shop;
    }
    public void buy(int  id,int count){
        try {
            shop.buy(id,count);
        } catch (ProductNotExistException e) {
            System.out.println(e.getMessage());
        } catch (ProductNotEnoughException e) {
            System.out.println(e.getMessage());
        }
    }
}

Map

poolFirstEntry

移除并返回与此映射中的最小键关联的键-值映射关系;如果映射为空,
则返回 null。

pollLastEntry

移除并返回与此映射中的最大键关联的键-值映射关系;如果映射为空,
则返回 null。

subMap(K fromKey,boolean fromInclusive,K to Key,boolean toInclusive)

subMap(K fromKey,K toKey)

数组也能实现内部比较器和外部比较器

Arrays工具类

Arrays.sort()

Collections工具类

Collections.sort()

线程安全的集合版本

  • synchronizedCollection
  • synchronizedMap
  • synchronizedSortedMap
  • synchronizedSortedSet

集合总结

可以使用比较器的方法、类或接口

  • TreeMap
  • TreeSet
  • list.sort
  • Arrays.sort
  • Collections.sort

垃圾回收

1.什么是垃圾
2.什么是垃圾回收

如何定位垃圾
引用计数算法
可达性分析算法

垃圾回收算法
标记清除算法
复制算法
标记整理算法
分代收集算法

U8 API接口开发踩过的坑 阅读详情

相关推荐

数字摄影与摄像中的图像信号处理器(ISP):流程与经典算法详解

图像信号处理器(Image Signal Processor, ISP)是现代数字成像系统(如智能手机、数码相机、网络摄像头等)中的核心组件,扮演着将图像传感器(如CMOS或CCD)捕获的原始光电信号转换为高质量、可供观看或进一步处理的数字图像的关键角色。在数字摄影和摄像的整个链路中,光线首先通过镜头(Lens)聚焦到图像传感器上,传感器将光信号转换为模拟电信号,随后经过模数转换(A/D转换)变为原始的数字图像信号。

qq_44682523的博客 3729

“asdascveasrgdfsdf”获取该字符串中,每一个字母出现的次数。 要求:打印结果是:a(2)b(1)...

“asdascveasrgdfsdf”获取该字符串中,每一个字母出现的次数。 要求:打印结果是:a(2)b(1)… package test3_31.t4; import java.util.HashMap; import java.util.Map; /*“asdascveasrgdfsdf”获取该字符串中,每一个字母出现的次数。 要求:打印结果是:a(2)b(1)... */ public class test4 { public static void main(String[] args

qq_47044642的博客 474

处理图数据, 安装“Pytorch“ + 图神经网络开源框架“PyG “+ “ogb“使用

"OGB" OSError: [WinError 127] 找不到指定的程序。1.[遇到这类问题往往跟torch安装的工具包(如torch-sparse,torch-scatter,torch-cluster)版本没对应上有关](https://blog.youkuaiyun.com/weixin_42358688/article/details/117433691)2.[OGB使用环境安装与依赖](https://ogb.stanford.edu/docs/home/)Data Loaders3.[torch-geo

Fuguir™的博客 3698

“asdascveasrgdfsdf”获取该字符串中,每一个字母出现的次数。 要求:打印结果是:a(2)b(1)...

“asdascveasrgdfsdf”获取该字符串中,每一个字母出现的次数。 要求:打印结果是:a(2)b(1)… package com.Work3; import java.util.Iterator; import java.util.TreeMap; /** * @Author: 廾匸 * @Date: 2020/11/22 18:43 * @Description: 获取字符 * @version: 1.01 */ public class Str { public sta

小鬼的博客 540

实测对比:DeepSeek、豆包、千问三大AI模型生成测试用例谁更强?(附完整代码)

本文通过实测对比了DeepSeek、豆包、千问三大AI模型在生成测试用例方面的表现。文章提供了完整的Python代码实现,详细分析了各模型在用例完整性、准确性、边界覆盖及幻觉控制等维度的差异,并分享了工程化集成与多模型融合等优化策略,旨在帮助测试团队选择合适工具以提升工作效率。

ik6789012的博客 954

STM32驱动HC-SR04超声波模块:两种精准测距方案详解

本文详解STM32驱动HC-SR04超声波模块的两种精准测距方案:定时器中断计数法和外部中断边沿检测法。涵盖硬件连接、代码实现与优化技巧,帮助开发者根据精度和复杂度需求选择合适方案,提升超声波测距在嵌入式项目中的稳定性和准确性。

g5h6i的博客 685

详解Java垃圾回收(GC)机制

最基本、发展历史最久的收集器,这个收集器是一个采用复制算法的单线程的收集器,单线程一方面意味着它只会使用一个CPU或一条线程去完成垃圾收集工作,另一方面也意味着它进行垃圾收集时必须暂停其他线程的所有工作,直到它收集结束为止。反之,若对象覆盖了finalize方法并且该finalize方法并没有被执行过,那么,这个对象会被放置在一个叫F-Queue的队列中,之后会由虚拟机自动建立的、优先级低的Finalizer线程去执行,而虚拟机不必要等待该线程执行结束,即虚拟机只负责建立线程,其他的事情交给此线程去处理。

s44359487yad的博客 2827

告别夜间噪点!用瑞芯微RV1126B的AI-ISP,手把手教你打造0.01Lux超低光摄像头

本文详细介绍了如何利用瑞芯微RV1126B芯片的AI-ISP技术,打造0.01Lux超低光摄像头,解决夜间噪点问题。通过AI算法与图像信号处理的深度融合,RV1126B的3TOPS边缘算力实现了像素级AI降噪和语义感知增强,显著提升低光环境下的图像质量。文章包含硬件选型、软件配置和实战调优指南,助力开发者在AIoT领域实现高性能视觉应用。

weixin_33725722的博客 565

用TreeSet存储以下数据

题目: 用TreeSet存储以下数据: “xiaoqiang”、 “zhangsan”、“lisi”、“xiaohua”、 “ruhua”、 “wangcai” 要求按照字符串的长度进行排序后再存储(如果长度相同,则按字符串的自然顺序排序) 代码: import java.util.Comparator; import java.util.TreeSet;public class Ex2

wen_284334906的博客 1371

ApolloScape 数据集:YOLOv10 + UI界面实现与应用

是由百度Apollo团队发布的一个大规模自动驾驶数据集,涵盖了车辆、行人、骑行者等多种交通元素,旨在为自动驾驶技术的发展提供丰富的数据支持。数据集包含多种复杂的场景,例如城市道路、交叉口、车辆聚集等,能够帮助研究人员和开发者在多种现实环境下测试和验证目标检测模型。YOLO(You Only Look Once)系列算法是目前最流行的目标检测算法之一,因其高效、准确以及实时性强的特点被广泛应用于计算机视觉领域。YOLOv10是YOLO系列中的最新版本,在性能和效率上进行了多方面的优化。速度快。

YOLO 931

【数据可视化-77】中国历年GDP数据可视化分析:Python + Pyecharts 深度洞察(含完整数据、代码)

通过上述可视化分析,我们可以清晰地看到中国历年GDP的变化趋势和产业构成。玫瑰图展示了2024年的产业构成,地图和柱状图展示了GDP的时空分布,双轴折线图和雷达图则分别展示了GDP总量与人均GDP的变化以及各行业的GDP贡献。希望这篇文章能帮助您更好地理解和分析中国历年GDP数据。如果您有任何问题或建议,欢迎在评论区留言!🎉。

qq_38614074的博客 1473

用TreeSet存储以下数据: “xiaoqiang”、 “zhangsan”、“lisi”、“xiaohua”、 “ruhua”、 “wangcai” 要求按照字符串的长度进行排序后再存储(如

用TreeSet存储以下数据: “xiaoqiang”、 “zhangsan”、“lisi”、“xiaohua”、 “ruhua”、 “wangcai” 要求按照字符串的长度进行排序后再存储(如果长度相同,则按字符串的自然顺序排序) package com.Work4; /** * @Author: 廾匸 * @Date: 2020/11/22 19:14 * @Description: * @version: 1.01 */ import org.junit.Test; import jav

小鬼的博客 422

前端使用二开Thingsboard一、二、三事(三)-规则链

以项目实战为基础,逐步介绍前端在thingsboard系统二次开发中的一些注意事项以及一些thingsboard一些页面功能讲解,为前端人员开发使用thingsboard提供一种可靠思路,打造一个完美的物联网系统。

weixin_43163457的博客 863

JS-查找字符串中每个字符出现的次数 & 查找字符串中指定字符出现的所有位置

查找字符串中每个字符出现的次数 var str = "xiaobaibai"; //第一步:把所有的字母全部变成小写 str = str.toLocaleLowerCase(); //第二步:创建一个空对象(目的:把字母作为键,次数作为值) var obj = {}; //第三步:遍历字符串,获取每个字母 for (var i = 0; i < ...

meng的博客 3928

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

获取字符串中每一个字母出现的次数

package cn.api.d.test; import java.util.Map; import java.util.TreeMap; public class MapTest { /** * @param args */ public static void main(String[] args) { /* * 练习: * "werertrtyuifgki

陌子曦的专栏 2507

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java获取字符串中每个字母出现的次数

给定字符串"ni…usazvcnbccnosewa" 获取字符串中每个字母出现的次数,格式a(2)b(0)c(2) 思路: 能存储映射关系的容器有数组和map集合(set虽然保证了唯一性,但是不能存储映射关系) 关系一方不存在有序编号,使用map,还可以保证唯一性的一方具备着顺序abc 使用TreeSet 集合最终存储的应该是字母和次数对应关系 1.先将字符串变成字符数组 2.遍历字符数组,用...

timekeeper 5498

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

在一个字符串中各个字母出现的次数

问题:统计welcome to china各个字母出现的次数,不考虑大小写 string str = "welcome to china"; //创建一个字典,在键中存放字母,值中存放出现的次数 Dictionary<char, int> dic = new Dictionary<char, int>(); for (int i = 0; i < str.Length; i++)

qq_43538857的博客 721

获取字符串中每个字母出现的次数

//获取字符串中每个字母出现的次数var str='qwerewdddfugg’;var b=str.split('’);var c={};for(var i=0;i&lt;b.length;i++){ if(c.hasOwnProperty(b[i])){ c[b[i]]++ }else{ c[b[i]]=1 }};console.log(c)...

m0_37646522的博客 596

请编写一个程序,用于统计字符串中每个字母出现次数(字母忽略大小写),统计出的结果请按照[(‘a‘,1).( ‘b“,3)]的格式输出。

请编写一个程序,用于统计字符串中每个字母出现次数(字母忽略大小写),统计出的结果请按照[(‘a’,1).( ‘b",3)]的格式输出。 代码如下: dic = {} str = input("请输入字符串:") for i in str: dic[i] = str.count(i) dic = list(dic.items()) print(dic) 运行结果: 请输入字符串:asdfghjkasdfghjk [('a', 2), ('s', 2), ('d', 2), ('f', 2), ('g

花有重开日,人无再少年。 9130

取出符串“123-456-789-000”中的数字部分,组成一个新的字符串输出

Main.m #import /* 1.求字符串“158”和“39”按十进制数值做差后的结果以字符串形式输出 2.取出符串“123-456-789-000”中的数字部分,组成一个新的字符串输出 */ int main(int argc, const char * argv[]) { // 1.求字符串“158”和“39”按十进制数值做差后的结果以字符串形式输出

逆钟夕的忘忧阁 2544

java集合计算字符出现次数_java集合TreeMap应用---求一个字符串中,每一个字母出现的次数...

packagecn.itcast.p1.map.test;importjava.util.Iterator;importjava.util.Map;importjava.util.TreeMap;public classTestMap {/*** 练习:* "fdgavcbsacdfs+++AA&&BBB" 获取该字符串中,每一个字母出现的次数。* 要求打印结果是:a(2)b(1)...

weixin_30393279的博客 233

java 获取字符串中的字母出现的次数

/* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:获取字符串中的字母出现的次数 * 作 者:薛广晨 * 完成日期:20

yd小晨的专栏 3594

统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数

/* * 需求:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符) * 举例: * "Hello123World" * 结果: * 大写字符:2个 * 小写字符:8个 * 数字字符:3个 * * 分析: * 前提:字符串要存在 * A:定义三个统计变量 * bigCount=0 * smallCoun...

loveayas 7827
上一篇: JavaSEDemo25Map
下一篇: JavaSEDemo27垃圾回收与String类 正则表达式
香鱼嫩虾
博客等级 码龄7年 1671粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香鱼嫩虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值