常用的集合在系统中定义了3个接口,其区别为:
java.util.Set为无序的集合,里面不允许有相同的元素,当新加入的元素为已经存在,则不执行add方法。
java.util.List为有序线性的集合,类似于数组,是可以存在相同元素的。
java.util.Map为一个具有映射关系的集合,也是无序的,可以存在相同的value值,但不能有相同的key值,且当加入新元素时,如果key值已经存在,
则新元素的value值会替代原来该key值所对应value的值。
这三者的常用的实现类分别为:java.util.hashset,java.util.ArrayList,java.util.hashmap
目前用到比较常用的set接口的实现方法有:增 add(E O),删remove(Object o),clear(),判断是否为空isEmpty(),等等
常用的List接口的实现方法有:add(E e),add(int index,E element),remove(int index),remove(Object o),clear(),
list实现类ArrayList其实就是一个队列。
而常用的Map接口的实现方法有:clear(), Set<K> keySet(),isEmpty(),get(Object key),put(K key,V value)。
这些方法只要我们经常用才会比较熟练。下面就用具体的例子来运用上面这些方法吧。
1.1.给定任意int一维数组
a.去掉数组中的重复元素
b.给数组排序
因为考虑到不能有相同元素存在,所以必须要用到Set,具体代码如下:
import java.util.HashSet;
import java.util.Iterator;
public class ArrayTest {
/**
* 用hashset来实现
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个一维数组
int array[]={132,2,3,1,2,3,5,623,213,3,2,6,7};
HashSet<Integer>set=new HashSet();//实例化一个hashset对象
//将数组元素加入到hashset里面
for(int i=0;i<array.length;i++){
set.add(array[i]);
}
//给set排序
Iterator<Integer> it=set.iterator();
ArrayList <Integer>list=new ArrayList<Integer>();//定义一个新队列,用来存储set里面的元素
while(it.hasNext()){//如果为true则执行
int num=it.next();
list.add(num);
}
//给队列排序
for(int i=0;i<list.size();i++){
for(int j=i+1;j<list.size();j++){
if(list.get(i)>list.get(j)){
int temp=list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
}
//打印队列元素
for(int i=0;i<list.size();i++)
System.out.println("元素:"+list.get(i));
}
}
运行结果为:
元素:1
元素:2
元素:3
元素:5
元素:6
元素:7
元素:132
元素:213
元素:623
=============================================================================================
2.给定任意字符串String str = " ";
统计字符串中每个字符出现的次数
分析:因为每个字符会有自己的次数,所以是一个映射关系,所以需要用到Map
代码如下:
package cn.java.test;
import java.util.HashMap;
public class Stringtest {
/**
* @
*/
public static void main(String[] args) {
//先创建一个hashmap的对象
HashMap<Character,Integer>map=new HashMap<Character,Integer>();
//先任取一段字串
String str=new String("sjfksfksafkekjfdhksdfiokvshslfjsahfafojrgdiahg");
for(int i=0;i<str.length();i++){
int count=0;//定义计数器为0
char c=str.charAt(i);
for(int j=0;j<str.length();j++){
if(str.charAt(j)==c){
count++;//计数器+1
}
}
map.put(c, count);
}
//遍历
//得到装有K的Set
java.util.Set<Character> keys = map.keySet();
//遍历Set
for(char c:keys){
//根据K得到对应的V
int num = map.get(c);
System.out.println(c+"字符的次数为:"+num);
}
}
}
运行结果为:
f字符的次数为:8
g字符的次数为:2
d字符的次数为:3
e字符的次数为:1
a字符的次数为:4
o字符的次数为:2
l字符的次数为:1
j字符的次数为:4
k字符的次数为:6
h字符的次数为:4
i字符的次数为:2
v字符的次数为:1
s字符的次数为:7
r字符的次数为:1
=====================================================================================================
所以说还是只有用过才知道。。
分享到:
相关推荐
### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...
通过深入学习和理解这个集合框架总结图,开发者能够更好地掌握Java集合框架的核心原理,提高代码质量和效率,解决各种数据管理问题。无论是在面试准备还是实际项目开发中,这都是一份不可或缺的参考资料。
### Java集合框架总结 在Java编程中,集合框架(Collections Framework)是处理数据的重要工具集,它提供了一系列接口和类来存储、操作和检索不同类型的元素。本文将深入解析Java集合框架的关键知识点,涵盖其核心...
本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!
总结集合框架需要实现哪些方法,以及集合的遍历方法JDK8.0以下的遍历方法
### Java集合框架使用总结 #### 前言 本文旨在为读者提供关于Java集合框架的概览性介绍,帮助理解其整体架构与设计理念。对于希望深入掌握特定接口或类使用方法的学习者,建议查阅官方提供的Java API文档。 #### ...
集合的总结,集合的框架的介绍和父类子类之间关系以及
集合框架大总结.xmind
超详细的集合框架总结,用法,比较,一网打尽java集合内容!超详细得集合框架知识图谱,如果你下载你会感觉超值
总结来说,Java集合框架为开发者提供了丰富的数据结构选择,能够适应各种场景下的数据处理需求。理解并熟练使用这些接口和类,对于提高代码的效率和可维护性至关重要。在实际开发中,根据具体需求选择合适的容器类型...
Java集合框架是Java编程语言中用于存储和管理对象的核心组件,它提供了一组高效、灵活的数据结构和操作这些数据结构的方法。本篇文章将深入探讨Java集合框架的主要概念、设计原则以及常用的集合类。 首先,为什么...
JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类
总结,Java集合框架为开发者提供了强大的数据管理能力。理解和熟练运用集合框架,不仅可以提升代码质量,也能在面对复杂问题时游刃有余。无论是基础的增删查改,还是高级的并发控制、性能优化,都离不开对集合框架的...
java集合框架的知识总结,内含代码讲解,知识点概括,带你更好理解java集合框架。。。。像Map集合的概念,遍历方式等