`
junzai
  • 浏览: 15144 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

集合框架的练习

阅读更多
1.给定任意int一维数组
  a.去掉数组中的重复元素
  b.给数组排序

思路1:因为HashSet集合中的元素不允许重复,所以可以将得到的任意数组放进
Hsahset中,再把HashSet中的元素放到一个新建的数组中,对数组进行冒泡排序(当然其他排序也可以),这样就可以得到我们所需要的结果。

思路1优化:将数组放进TreeSet(TreeSet可以自然排序),于是就可以省去冒泡排序这一步。



2.给定任意字符串String str = "sadsadljsaljdlsajdlsajdlsajd";
  统计字符串中每个字符出现的次数

思路1:因为HashMap中的K是不能Set类型的,不能重复,V是可以重复的。所以我们可以将字符作为K,次数作为V,字符和数组的键值形成映射。取出字符串中的每一个字符。然后判断map中是否出现过这个字符。将字符和次数分别放入map中。

优化思路:利用三目运算符来判断

代码如下:

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

public class Test {

public static void main(String args[]) {
                  //定义任一数组
int array[] = { 3, 5, 4, 2, 1, 2, 3, 4, 1 };

Test t = new Test();
                  //调用方法,返回数组类型的值
int[] arr = t.paixu2(array);
//加强for循环的遍历
for (int num : arr) {
System.out.print(num + "\t");
}
                  //定义任一字符串
String str = "abbcccddddeeeeeffffff";
                  //调用方法,返回值类型
HashMap<Character, Integer> map = t.count(str);
                  //HashSet的遍历一定要会
Set<Character> set = map.keySet();
for (char c : set) {
                           //得到次数
int count = map.get(c);
System.out.println(c + "出现次数:" + count);
}

}

/**
* 对传入的数组去掉重复元素,并且排序 HashSet是不允许存在重复元素的
*
* @param array
*            要处理的数组
* @return 返回去掉重复排好序之后的数组
*/
public int[] paixu(int[] array) {
HashSet<Integer> set = new HashSet<Integer>();
for (int i = 0; i < array.length; i++) {
set.add(array[i]);
}
// 定义新数组,长度就是set中的元素个数
int[] arr = new int[set.size()];
int k = 0;
for (int num : set) {
arr[k] = num;
k++;
}

// 冒泡排序
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

}

}

return arr;
}
         //排序
public int[] paixu2(int[] array) {

TreeSet<Integer> set = new TreeSet<Integer>();
for (int i = 0; i < array.length; i++) {
set.add(array[i]);
}
// 定义新数组,长度就是set中的元素个数
int[] arr = new int[set.size()];
int k = 0;
for (int num : set) {
arr[k] = num;
k++;
}
return arr;
}

/**
* 统计指定字符串中每个字符出现的次数
*
* @param str
*            要统计的字符串
* @return 返回 字符-->次数的键值对 映射
*/
public HashMap<Character, Integer> count(String str) {

HashMap<Character, Integer> map = new HashMap<Character, Integer>();

// 遍历字符串,取出字符
for (int i = 0; i < str.length(); i++) {
                           //得到字符串中的每个字符
char c = str.charAt(i);
Integer num = map.get(c);

// //如果map中出现过这个字符,表示该字符已经在前面被统计过了
// if(map.containsKey(c)){
// int count = map.get(c);
// count++;
// map.put(c, count);
// }else{
// //如果没有出现,表示是第一次统计到
// map.put(c, 1);
// }
                         
                           //方法二
num = null == num ? 1 : ++num;
map.put(c, num);

}
return map;
}

}
分享到:
评论

相关推荐

    一个扑克游戏,用于Java集合框架练习.zip

    一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合...

    集合框架练习.doc

    集合框架练习 在 Java 中,集合框架(Java Collections Framework)是 Java 语言中的一种数据结构,可以用来存储和操作大量数据。集合框架提供了多种数据结构,如列表、集合、映射等,可以满足不同的应用需求。下面...

    集合框架练习.rar

    这个"集合框架练习.rar"文件很可能包含了多个练习题目,旨在帮助学习者深入理解和掌握Java集合框架的使用。 Java集合框架包括接口(如List、Set、Queue、Map等)和实现这些接口的类(如ArrayList、HashSet、...

    学士后Java集合框架和泛型课后习题答案

    通过学习和练习这些内容,你可以深入理解Java集合框架的核心概念和泛型的应用,从而在编程实践中更加灵活和高效地处理数据。同时,不断的学习和实践是提升技能的关键,希望你能在Java世界中不断进步。

    Java集合框架及泛型

    Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了一组高效的数据结构和操作这些数据结构的方法。泛型则是Java在J2SE 5.0版本引入的一个特性,极大地提高了代码的类型安全性和可读性。下面我们将深入...

    java 集合练习题

    在这个“java集合练习题”中,我们主要关注如何使用Java集合框架来处理数据,特别是对于学生信息的存储、排序和输出。以下是对这个练习题的详细解析: 1. **集合框架简介**: Java集合框架是Java API的一部分,它...

    java 集合框架(TreeSet练习)

    Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了数据结构和算法的实现,使得在处理各种数据存储和操作时更加便捷高效。在Java集合框架中,`TreeSet`是一个有序、不可重复的集合,它基于红黑树(Red-...

    Collection集合基本练习1

    【Collection集合基本练习1】是Java编程中关于集合框架的一个基础练习,主要涉及以下几个知识点: 1. **Collection接口**:Collection是Java集合框架的顶级接口,它定义了集合的基本操作,如添加、删除、判断元素等...

    Java集合 练习代码

    本练习代码主要围绕Java集合框架展开,包括ArrayList、LinkedList、HashSet、HashMap等各种类型的集合以及它们的使用方法。通过这些代码示例,我们可以深入理解Java集合的各种特性和操作。 首先,我们来探讨...

    java集合框架的使用。集合的运算

    Java集合框架是Java编程语言中一个非常重要的组成部分,它为...对于想要深入研究Java集合框架的人来说,参考《java版数据结构》(叶核亚版)会是一个不错的选择,这本书可能会进一步解释这些概念并提供更多的练习题目。

    集合框架及泛型下载资料

    上机答案、练习及答案文件可能包含了各种集合框架和泛型的实际编程练习,通过这些练习,你可以深入理解如何在实际问题中应用这些概念。授课源代码很可能是教授讲解集合框架和泛型时使用的示例代码,通过阅读和分析...

    java集合框架PPT

    Java集合框架是Java编程语言中一个至关重要的部分,它为数据存储和操作提供了丰富的类库。这个PPT作为培训教材,旨在深入解析Java集合框架的核心概念、接口和类,帮助学习者掌握其基本使用和高级特性。以下是Java...

    泛型集合项目练习

    在.NET框架中,泛型集合是编程中非常重要的一个概念,尤其在C#语言中,它们为存储和操作数据提供了高效且类型安全的方式。在这个"泛型集合项目练习"中,我们将深入探讨如何利用泛型集合,特别是`Dictionary, TValue&gt;...

    javaee框架练习Code.rar

    这个名为"javaee框架练习Code.rar"的压缩包文件提供了基础的练习代码,帮助学习者深入理解并掌握这些框架的使用。 首先,Spring框架是JavaEE应用中的核心框架,它提供了依赖注入(Dependency Injection,DI)和面向...

    java基础练习题 (目前到集合内含三个小综合案例)

    总的来说,这份资料涵盖了从Java语言基础到集合框架的重要知识点,并提供了实战练习,对于Java初学者来说是非常宝贵的资源。通过反复练习和案例分析,你可以逐步提高编程技能,为深入学习Java高级特性和框架打下坚实...

    Java集合框架.pdf

    Java集合框架是Java编程语言中用于管理和操作对象集合的核心组件,它极大地简化了数据结构和算法的实现。在Java中,集合框架主要由接口和实现这些接口的类组成,包括List、Set、Queue和Map等主要接口以及ArrayList、...

Global site tag (gtag.js) - Google Analytics