今天讲了集合框架。set算是一个最大容器,可以装任何东西(object),然后再往下分,就会有几种不同的容器方式,今天主要讲了3种:ArrayList,HashSet,
HashMap.
ArrayList 线性,有下标,长度可变,有序的(先进先出),可重复的
HashSet 非线性的,无下标的,不可重复的,无序的,长度可变的(它的不可重复性可以用来去掉数组中重复的数据)
HashMap 是一个key和value的映射关系,key存在一个Set中,所以key是不能重复的,每一个key对应一个value,value是可重复的
同时,还学到了3种遍历的方法,个人觉得第三种和第一种用起来比较方便。第一种就是直接通过for循环就行遍历,第三种是加强版的for循环? for(String str:list) 冒号前面是数组中的对象 冒号后面是这个数组。
随后就是课堂练习,以前画图板,都是有老师的代码可以去仿照或者说是“抄”,这次让自己写,好像头绪理的不是很清。心里知道它是什么一个过程,但是不知道需要几个方法,参数是怎么传来传去的。这样很纠结啊。加上前面的排序法我还漏上过,今天又搞了一会排序法。所以这两个练习做的比较艰难了点。不过慢慢来嘛,不怕做的晚,就怕不做。感觉还是要多练吧。只能说练的还不够,看的懂跟会写还是两码事。以后要脱离抄代码的模式,尽量脱离老师的代码,自己重新设计,就算时间久点,也是自己的思路,以后慢慢形成一个体系。
今天有一段代码还是需要理解下的
//遍历,方法3
java.util.Iterator<Integer> iter=set.iterator();
int[] arr = new int[set.size()];
//定义一个计数器去遍历数组的下标
int count=0;
while(iter.hasNext()){
int quchong=iter.next();
//把取出来的元素存放到数组中
arr[count]=quchong;
count++;
System.out.println(quchong);
}
return arr;
}
这是将一个随机数组去掉重复值的一个方法中的一段。去重复值,其实只需要遍历,然后打印,但是因为到后面我们需要用冒泡排序法,这里要传入进一个数组,其实就是这个地方遍历的一个数组,只是这里用的是一个迭代器,不能直接当做数组来用。所以,在循环中,我们顺带创建一个一维数组,讲取出来的元素存到这个数组中,即打印了不重复的元素,又返回了一个一维数组,方便下面使用。这一点好好理解下吧。
package 集合框架练习;
import java.util.Random;
public class SetArray {
// 申明一个公共的数组
public java.util.ArrayList<Integer> Array;
// 构造方法,构造一个随机数组
public SetArray() {
Array = new java.util.ArrayList<Integer>();
// 创建一个随机数对象
Random random = new Random();
// 用for循环传入20个数
for (int i = 0; i < 20; i++) {
int a = random.nextInt(30);
Array.add(a);
}
// 打印出随机数组
for (int i = 0; i < 20; i++) {
int a = Array.get(i);
System.out.println(a);
}
}
//去重复值的方法
public int[] quchong(){
//去重复,创建HashSet去重复
java.util.HashSet<Integer> set = new java.util.HashSet<Integer>();
for(int i=0;i<20;i++){
set.add(Array.get(i));
}
//打印出来
//遍历,方法3
java.util.Iterator<Integer> iter=set.iterator();
int[] arr = new int[set.size()];
//定义一个计数器去遍历数组的下标
int count=0;
while(iter.hasNext()){
int quchong=iter.next();
//把取出来的元素存放到数组中
arr[count]=quchong;
count++;
System.out.println(quchong);
}
return arr;
}
//冒泡排序法
public int[] maopao(int[] a){
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]>a[j]){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
return a;
}
public static void main(String[] args){
SetArray Array=new SetArray();
System.out.println("----------------------------");
int[] arr = Array.quchong();
System.out.println("----------------------------");
arr=Array.maopao(arr);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
结果比较长,就不显示了。实际操作如果想好看点,在打印时可以不换行
package 集合框架练习;
/*
* 2.给定任意字符串String str = "sadsadljsaljdlsajdlsajdlsajd";
* 统计字符串中每个字符出现的次数
* 思路:1.创建一个HashMap数组,字符对应的是key,字符出现的次数对应的是value
* 2.利用String中的 charAt(int index) 方法返回指定索引处的 char 值。
* 这样可以通过循环得到每一个字符,在存入到HashMap的key中,对应的value值可以先设为0,在循环中,
* 继续对数组循环,就行判断,若出现字符相等情况,则value值加1。最后将key,value装入ShapeMap中
* 3.最后遍历,用今天讲到的第三种方法来写,最后打印
*/
import java.util.HashMap;
public class HashMapTest {
public static void main(String[] args){
//先创建一个HashMap的对象
HashMap<Character,Integer> map=new HashMap<Character,Integer>();
//任取一段字符串
String str="sadadfdfgd阿safdafs哦额阿";
//String对象调用length方法,在API中可以查到,返回一个字符串长度
for(int i=0;i<str.length();i++){
int count=0;//计数器归0
char a=str.charAt(i);//得到第i个字符
for(int j=0;j<str.length();j++){
//在遍历一次String数组,如果有跟a相等的字符,则计数器加1
if(str.charAt(j)==a){
count++;
}
}
map.put(a, count);
//现在得到是一个HashMap数组,里面有对应的映射。直接遍历取出
}
java.util.Set<Character> keys=map.keySet();
//遍历数组key
for(char c:keys){
//根据K得到对应的V
int number=map.get(c);
System.out.println(c+"出现的次数是:"+number);
}
}
}
运行结果为:
f出现的次数是:4
g出现的次数是:1
d出现的次数是:5
哦出现的次数是:1
s出现的次数是:3
a出现的次数是:4
阿出现的次数是:2
额出现的次数是:1
反正今天挺纠结的。做的太慢了。希望以后每天一日一结。
分享到:
相关推荐
### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...
本总结图详细而全面地涵盖了Java集合框架的主要概念和组件,对于初学者和有经验的开发人员来说都是一个宝贵的资源。 在Java集合框架中,主要有两种类型的容器:集合(Collection)和映射(Map)。集合是用来存储一...
本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!
### Java集合框架使用总结 #### 前言 本文旨在为读者提供关于Java集合框架的概览性介绍,帮助理解其整体架构与设计理念。对于希望深入掌握特定接口或类使用方法的学习者,建议查阅官方提供的Java API文档。 #### ...
集合的总结,集合的框架的介绍和父类子类之间关系以及
集合框架是Java编程语言中的核心组成部分,它提供了一套高效、灵活的数据结构和算法操作,使得程序员能够方便地存储和管理对象。这篇学习笔记将深入探讨Java集合框架的基础概念、主要类库以及常见应用场景。 首先,...
### Java集合框架总结 在Java编程中,集合框架(Collections Framework)是处理数据的重要工具集,它提供了一系列接口和类来存储、操作和检索不同类型的元素。本文将深入解析Java集合框架的关键知识点,涵盖其核心...
总结来说,Java集合框架为开发者提供了丰富的数据结构选择,能够适应各种场景下的数据处理需求。理解并熟练使用这些接口和类,对于提高代码的效率和可维护性至关重要。在实际开发中,根据具体需求选择合适的容器类型...
### Java集合框架详解 #### 一、Java集合框架概述 Java集合框架是Java标准库的重要组成部分,它提供了存储和操作对象的各种数据结构。通过使用集合框架,开发人员可以轻松地管理不同类型的数据集,并且能够利用...
BDQN ACCP 7.0 Java《集合框架及泛型》学习资料.part1
Java集合框架是Java编程语言中的一个核心组成部分,它为数据存储和操作提供了丰富的类库。在Java中,集合框架主要包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList等)。这个...
集合框架练习 在 Java 中,集合框架(Java Collections Framework)是 Java 语言中的一种数据结构,可以用来存储和操作大量数据。集合框架提供了多种数据结构,如列表、集合、映射等,可以满足不同的应用需求。下面...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的...
总结,Java集合框架为开发者提供了强大的数据管理能力。理解和熟练运用集合框架,不仅可以提升代码质量,也能在面对复杂问题时游刃有余。无论是基础的增删查改,还是高级的并发控制、性能优化,都离不开对集合框架的...
JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类
6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6.java集合框架.zip6....