java 集合数组 例子_Java数组元素去重(不使用集合)(示例代码)
/*
* 需求:去除整型数组中重复的元素,不能使用集合等方法
*
* 解决思路:
* 1、对数组中的元素进行从小到大的顺序排序
* 2、获取数组中重复元素的个数
* 3、获取数组中重复元素的索引位置,并存入创建的索引数组
* 4、创建去重数组,去重数组长度 = 原始数组长度 - 重复元素个数
* 5、将原始数组的值赋给去重数组,遇到重复元素的索引位置则不赋值
*/
public class ShuZu {
public static void main(String[] args) {
int OldArray[] = {0,1,6,2,2,3,3,5,87,43,12,3,123,43,3,42,3,12,31,23,12,3,1,23,1,6,5,23};
//遍历原始数组
System.out.println("原始数组:");
for (int i = 0; i < OldArray.length; i++) {
System.out.print(OldArray[i] + " ");
}
System.out.println(); //换行作用
//冒泡排序,从小到大排序
for (int i = 1; i < OldArray.length; i++) {
for (int j = 0; j < OldArray.length - i; j++) {
if (OldArray[j] > OldArray[j+1]){
int temp = OldArray[j];
OldArray[j] = OldArray[j + 1];
OldArray[j + 1] = temp;
}
}
}
//计算重复元素的个数
int count = 0;
for (int i = 0; i < OldArray.length - 1; i++) {
//若后面元素等于前面元素,则表示有重复元素
if (OldArray[i] == OldArray[i + 1]){
count++;
}
}
//创建索引数组,保存原始数组中重复元素的索引位置
int index = 0;
int indexArray[] = new int[count];
for (int i = 0; i < OldArray.length - 1; i++) {
//若后面元素等于前面元素,则将后面元素的索引位置赋给索引数组
if (OldArray[i] == OldArray[i + 1]){
indexArray[index] = i + 1;
index++;
}
}
//创建去重数组
int newArray[] = new int[OldArray.length - count];
//定义索引数组的起始索引位置
int indexOfIndexArray = 0;
//定义去重数组的起始索引位置
int indexOfNewArray = 0;
for (int i = 0; i < OldArray.length; i++) {
//索引位置不能超过索引数组的边界
if(indexOfIndexArray < indexArray.length){
if(i == indexArray[indexOfIndexArray]){
indexOfIndexArray++;
}else {
//非重复元素赋予去重数组
newArray[indexOfNewArray] = OldArray[i];
//去重数组的索引位置自增1
indexOfNewArray++;
}
} else {
//非重复元素赋予去重数组
newArray[indexOfNewArray] = OldArray[i];
//去重数组的索引位置自增1
indexOfNewArray++;
}
}
//遍历去重数组
System.out.println("去重数组:");
for (int i = 0; i < newArray.length; i++) {
System.out.print(newArray[i] + " ");
}
}
}
运行结果如下:
原始数组:
0 1 6 2 2 3 3 5 87 43 12 3 123 43 3 42 3 12 31 23 12 3 1 23 1 6 5 23
去重数组:
0 1 2 3 5 6 12 23 31 42 43 87 123
java 集合数组 例子_Java数组元素去重(不使用集合)(示例代码)相关推荐
- java卡片布局例子_Java编程使用卡片布局管理器示例【基于swing组件】
本文实例讲述了java编程使用卡片布局管理器.分享给大家供大家参考,具体如下: 运行效果: 完整示例代码: package com.han; import java.awt.borderlayout; ...
- java微信红包开发_java写的伪微信红包功能示例代码
性能优化点: 1.使用int不使用double.(单位用分不用元)也省去了还要用math.round四舍五入,把double类型数据只留小数点后前两位. 2.random() 方法用于返回一个随机数, ...
- Java EasyExcel在Web网站中读写Excel的方法及示例代码
使用EasyExcel可以更容易简单在Web网站中读写Excel,本文主要介绍在Java Web网站中读写Excel方法及示例代码. 原文地址:Java EasyExcel在Web网站中读写Excel ...
- java 数组删除_Java数组删除指定元素的方法(按数组角标删除)
Java最有效的删除数组指定元素的方法,应该属于这一种形式,下面是Java数组按角标删除数据的工具类,代码如下:public static byte[] removeTheElement(byte[] ...
- java数组更新_java数组
数组无论在哪种编程语言中都算是最重要的数据结构之一,同时不同语言的实现及处理也不尽相同.但凡写过一些程序的人都知道数组的价值及理解数组的重要性,与链表一道,数组成为了基本的数据结构.尽管Java提供了 ...
- java数组解析_Java - 数组解析
一.什么是数组 数组?什么是数组?在我印象中的数组是应该这样的:通过new关键字创建并组装他们,通过使用整形索引值访问它的元素,并且它的尺寸是不可变的! 但是这只是数组的最表面的东西!深一点?就是这样 ...
- Java数组参考_Java数组
数组变量 VS 数组对象 先看一例子: int[] primitiveArray; //在栈中声明了一个引用变量,暂时还没指向任何对象 primitiveArray = new int[5]; //在 ...
- java数组重复_JAVA数组去除重复数据
一.用List集合实现 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List list = new ArrayList();for (int i=0; i list.ad ...
- java定义数组范围_Java数组的定义和使用
为什么需要数组? 问题:我们要计算30个学生的平均分 如果没有数组,我们的代码是这样的 int score1 = 32; int score2 = 56; int score3 = 78; //--此 ...
最新文章
- “2017 和 2019的对比”刷屏!各路高手出招,画风逐渐失控
- MySQL 5.7 密码策略
- POJ 2186 Tarjan
- 对于生活服务小公司网站的看法
- 利用gcc的-finstrument-functions获取函数轨迹跟踪
- tableau必知必会之如何在同一视图中进行相同分析维度图表的切换
- NLP:自然语言处理技术近十年发展技术更迭的简介、案例之详细攻略(持续更新)
- 年月日_C++计算输入的年月日是这一年的第几天
- 使用append之后数组维度消失_JAVA魅力之神奇的数组带给你不一样的乐趣
- boost::mpl模块实现insert_range相关的测试程序
- 解析时分秒_三年级上册,数学期中复习卷(含详细答案解析),有效提分,收藏...
- 如何实现一个优秀的散列表!
- Android 上千张图片的列表滑动加载
- Opera Android将支持HTML5和Flash功能
- 【 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛】1002.array【主席树】
- 组装电脑配件选择教程
- C/C++ Npcap包实现数据嗅探
- 设置计算机网络文件共享,局域网共享文件设置方法图文教程
- Arcgis实例学习5--统计直方图、空间分布图、统计信息
- python视频人脸检测_OpenCV + python 实现人脸检测(基于照片和视频进行检测)
热门文章
- 实现DropDownList 无刷新的联动效果
- 华为机试HJ68:成绩排序
- 基于matlab的谱估计,基于MATLAB的功率谱估计实验.doc
- android个人理财通项目_怎么开通微信理财通,利用闲钱赚收益
- db2 删除索引_程序员必须了解的知识点——你搞懂mysql索引机制了吗?
- CSS基础——盒子模型【学习笔记】
- CSS基础——CSS字体样式属性【学习笔记】
- c++重载、覆盖及隐藏规则
- mysql怎么看历史最高连接数_MySQL数据库怎么查看和修改最大连接数
- simulik中的液压建模Simscape_Fluids资料收集及学习(原SimHydraulics)