`
欧阳晓
  • 浏览: 44272 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

去重复和排序与字符串的统计

阅读更多

         昨天学了java.util下面的俩个类,龙哥并布置了俩个作业。1、用set实现去掉一个数组的重复数字和进行排序。2、用map进行一个字符串的字符统计。

         实现 1 思路:是先排序还是先去重复(由于set是无序的,所以就要先进行去重复)----》取出后,进行排序(由于取出的个数不知道,所以先得创建一个队列来存放数组,再对队列进行排序)

代码:

import java.util.ArrayList;

//创建一个Set测试类
public class SetTest {
 public static void main(String [] args){
  //创建一个集合对象
  java.util.HashSet<Integer> sSet=new java.util.HashSet<Integer>();
  //定义一个数组
  {
         int[] t={10,20,5,11,10,20,11,5,45,12};
       //定义一个队列用来存放去重复后的数组元素,由于去重复后不清楚元素个数,故选用队列存放
      ArrayList ar=new ArrayList();

  //放入元素
  for(int i=0;i<t.length;i++){
   Integer ss=t[i];
  //将元素放入集合中
    sSet.add(ss);
  }
 //遍历
  //得到迭代器
  java.util.Iterator<Integer> iter=sSet.iterator();
  
  while(iter.hasNext()){//取得元素
   Integer ss=iter.next();
   //将数字放入队列中
   ar.add(ss);}
   //建立一个新数组,用来存入队列中的元素,以便于用冒泡法排序
   int count=ar.size();
   int [] a=new int[count];
   for(int x=0;x<count;x++){
    a[x]=(Integer) ar.get(x);
   }//以下是冒泡法对新数组中的元素进行排序
   for(int i=0;i<a.length;i++){
    for(int j=0;j<a.length-1;j++){
    if(a[j]>a[j+1]){
     int temp=a[j];
     a[j]=a[j+1];
     a[j+1]=temp;
     
    } 
    }
  
      System.out.print(a[i]+"\t");
  
     }
    
  
 }

}
}
              实现 2 思路:我是将字符串转化为字符数组,再进行判断是否相同,如果相同就加1.,再输出结果

代码:

 

//创建一个Map测试类
public class MapTest {
    //定义一个主函数
 public static void main(String args[]) {
  // 创建一个映射对象
  java.util.Map<Character, Integer> map = new java.util.HashMap<Character, Integer>();
        //定义一个字符串
  String str = "sadsafddasdscv";
  //将此字符串转换为一个新的字符数组
  char[] s = str.toCharArray();
//     System.out.println(s1.length);
 
  // 往映射中放数据
  for (int i = 0; i < s.length; i++) {
   char s1 = s[i];
   
   //定义一个变量
   int t=0;
   for (int j = 0; j < s.length; j++) {
    if (s[i]==s[j]) {
     t++;
    }
   }
   // 将键值对放到map中
   map.put(s1, t);
  }

  // 遍历
  // 1.得到键的Set集合
  java.util.Set<Character> keys = map.keySet();
  // 得到迭代器
  java.util.Iterator<Character> iter = keys.iterator();
  // 迭代set集合
  while (iter.hasNext()) {
   // 取出一个
   char key = iter.next();
   // 根据key得到Value
   int value = map.get(key);
   System.out.println("字母"+key + " = "+"出现次数" + value);
  }

 }

}
***** *  *  *  *****遍历*******  *  *   * ******

  set与map的区别:

相同点:多需要迭代器

不同点:后者需要先得到key值

因为我在网上查过,没这方面的题目,我就这此提供一点资料。希望得到好的建议。

分享到:
评论

相关推荐

    找到出现最多的数字和出现的次数,去除字符串中重复的数字,对去重后的字符串排序,代码规范

    找到出现最多的数字和出现的次数,去除字符串中重复的数字,对去重后的字符串排序,代码规范

    C++将一串带空格的数字字符串排序并统计重复元素输出

    C++将一串带空格的数字字符串排序并统计重复元素输出

    超级实用去重复统计工具EditPlus

    就拿去除重复行来说吧,几十万的数据用它就对了,比excel和sql快多了。导入进去,选择排序,去除重复行。

    Linux运维-3.Shell编程-12 shell编程-133字符串处理之排序、取消重复行、统计.avi

    Linux运维-3.Shell编程-12 shell编程-133字符串处理之排序、取消重复行、统计.avi

    Python实现统计给定字符串中重复模式最高子串功能示例

    主要介绍了Python实现统计给定字符串中重复模式最高子串功能,涉及Python针对字符串的遍历、排序、切片、运算等相关操作技巧,需要的朋友可以参考下

    Python实现针对给定字符串寻找最长非重复子串的方法

    本文实例讲述了Python实现针对给定字符串寻找最长非重复子串的方法。分享给大家供大家参考,具体如下: 问题: 给定一个字符串,寻找其中最长的重复子序列,如果字符串是单个字符组成的话如“aaaaaaaaaaaaa”那么...

    PTA-浙大版《Python 程序设计》题目集-第3章-16 删除重复字符 (20分)

    本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。 输入格式: 输入是一个以回车结束的非空字符串(少于80个字符)。 输出格式: 输出去重排序后的结果字符串。 输入样例:...

    算法:算法C语言实现 第1-4部分 基础知识、数据结构、排序及搜索

    第三部分“排序”(第6~11章)按章节顺序分别讨论基本排序方法(如选择排序、插入排序、冒泡排序、希尔排序等)、快速排序方法、归并和归并排序方法、优先队列与堆排序方法、基数排序方法以及特殊用途的排序方法,...

    文档编辑器的设计与实现

    (3)查找与替换功能:能够查找任意一个字符串在文档中出现的次数,并可以选择全部或有选择地将其替换为另一个字符串。 (4)显示功能:编辑完成后可以显示编辑后的文档。 (5)抽取功能:重复单词只保留一份拷贝,...

    EXCEL函数公式集

    如何把单元格中的数字提取出来(字符串中不连续) 数字在字符串中不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容中字符串 如何提取一串数字中的几位...

    python cookbook(第3版)

    第二章:字符串和文本 2.1 使用多个界定符分割字符串 2.2 字符串开头或结尾匹配 2.3 用Shell通配符匹配字符串 2.4 字符串匹配和搜索 2.5 字符串搜索和替换 2.6 字符串忽略大小写的搜索替换 2.7 最短匹配模式...

    Java面试宝典2010版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 5、说明生活中遇到的二叉树,用java实现二叉树 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复...

    程序员的SQL金典6-8

     5.2.6 截去字符串两侧的空格  5.2.7 取子字符串  5.2.8 计算子字符串的位置  5.2.9 从左侧开始取子字符串  5.2.10 从右侧开始取子字符串  5.2.11 字符串替换  5.2.12 得到字符的ASCII码  5.2.13 得到一个...

    程序员的SQL金典7-8

     5.2.6 截去字符串两侧的空格  5.2.7 取子字符串  5.2.8 计算子字符串的位置  5.2.9 从左侧开始取子字符串  5.2.10 从右侧开始取子字符串  5.2.11 字符串替换  5.2.12 得到字符的ASCII码  5.2.13 得到一个...

    程序员的SQL金典4-8

     5.2.6 截去字符串两侧的空格  5.2.7 取子字符串  5.2.8 计算子字符串的位置  5.2.9 从左侧开始取子字符串  5.2.10 从右侧开始取子字符串  5.2.11 字符串替换  5.2.12 得到字符的ASCII码  5.2.13 得到一个...

    程序员的SQL金典3-8

     5.2.6 截去字符串两侧的空格  5.2.7 取子字符串  5.2.8 计算子字符串的位置  5.2.9 从左侧开始取子字符串  5.2.10 从右侧开始取子字符串  5.2.11 字符串替换  5.2.12 得到字符的ASCII码  5.2.13 得到一个...

    PHP和MySQL Web开发第4版pdf以及源码

    4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() 4.4.2 使用strlen()函数测试字符串的长度 4.5 使用字符串函数匹配和替换子字符串 4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和...

    PHP和MySQL WEB开发(第4版)

    4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp() 4.4.2 使用strlen()函数测试字符串的长度 4.5 使用字符串函数匹配和替换子字符串 4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr()...

    华为机试108题源码(题目&&解答)

    ├─001 字符串最后一个单词长度 │ └─Source ├─002 计算字符个数 │ └─Source ├─003 明明的随机数 │ └─Source ├─004 字符串分隔 │ └─Source ├─005 进制转换 │ └─Source ├─006 质数因子 │ ...

    Python Cookbook

    1.21 在Unicode和普通字符串之间转换 43 1.22 在标准输出中打印Unicode字符 45 1.23 对Unicode数据编码并用于XML和HTML 46 1.24 让某些字符串大小写不敏感 49 1.25 将HTML文档转化为文本显示到UNIX终端上 52 ...

Global site tag (gtag.js) - Google Analytics