首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用ArrayList和用户输入在不同的索引处查找相同的数字

可以通过以下步骤实现:

  1. 首先,创建一个空的ArrayList对象,用于存储用户输入的数字。
  2. 接下来,通过用户输入的方式,将数字逐个添加到ArrayList中。可以使用Scanner类来获取用户输入。
  3. 在用户输入完毕后,可以使用循环遍历ArrayList中的每个数字。
  4. 在循环中,可以使用另一个嵌套循环来比较当前数字与后面的数字是否相同。可以通过ArrayList的get()方法来获取指定索引处的数字。
  5. 如果找到相同的数字,可以将其索引位置记录下来,可以使用另一个ArrayList来存储这些索引值。
  6. 循环结束后,可以检查记录索引的ArrayList是否为空。如果为空,则表示没有找到相同的数字。
  7. 如果记录索引的ArrayList不为空,则可以输出这些索引值,表示找到了相同的数字。

以下是一个示例代码,演示了如何实现上述步骤:

代码语言:txt
复制
import java.util.ArrayList;
import java.util.Scanner;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>();
        ArrayList<Integer> matchingIndexes = new ArrayList<>();

        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入数字个数:");
        int count = scanner.nextInt();

        System.out.println("请输入数字:");
        for (int i = 0; i < count; i++) {
            int num = scanner.nextInt();
            numbers.add(num);
        }

        for (int i = 0; i < numbers.size(); i++) {
            int currentNum = numbers.get(i);
            for (int j = i + 1; j < numbers.size(); j++) {
                int nextNum = numbers.get(j);
                if (currentNum == nextNum) {
                    matchingIndexes.add(j);
                }
            }
        }

        if (matchingIndexes.isEmpty()) {
            System.out.println("没有找到相同的数字。");
        } else {
            System.out.println("找到相同的数字的索引位置:");
            for (int index : matchingIndexes) {
                System.out.println(index);
            }
        }
    }
}

这个示例代码中,我们使用了一个ArrayList来存储用户输入的数字,并使用嵌套循环来查找相同的数字。如果找到相同的数字,我们将其索引位置记录在另一个ArrayList中,并在最后输出这些索引值。

请注意,这个示例代码只是演示了如何使用ArrayList和用户输入在不同的索引处查找相同的数字,并没有涉及到云计算相关的内容。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java基础知识总结--ArrayList

1.ArrayList 集合和数组区别 : ​ 共同点:都是存储数据容器 ​ 不同点:数组容量是固定,集合容量是可变 1.1 -ArrayList构造方法添加方法 public...在出现E地方我们使用引用数据类型替换即可 ​ 举例:ArrayList, ArrayList 注意:集合容器如果没有输入就可以存储任意数据类型 泛型:对集合容器存储数据类型进行限制...) 删除指定索引元素,返回被删除元素 public E set(int index,E element) 修改指定索引元素,返回被修改元素 public E get(int index) 返回指定索引元素...6.2 定义一个方法,用于修改学生信息 ​ 显示提示信息 ​ 键盘录入要修改学生学号 ​ 调用getIndex方法,查找该学号集合索引 ​ 如果索引为-1,提示信息不存在...使用获取出学生学号, 传入学号(查找学号)进行比对 if(id.equals(sid)){ // 存在: 让index变量记录正确索引位置

26440

Java 编程思想第十二章 - 容器持有对象

映射(Map) : 一组成对“键值对”对象,允许使用键来查找值。 ArrayList 使用数字查找对象,因此某种意义上讲,它是将数字对象关联在一起。...HashSet , TreeSet LinkedHashSet 是 Set 类型。Set 仅保存每个相同项中一个,并且不同 Set 实现存储元素方式也不同。...使用索引号来删除元素与通过对象引用来删除元素相比,显得更加直观,因为使用索引时,不必担心 equals() 行为。 removeAll() 方法也是基于 equals() 方法运行。...使用“replace”可能更适合,因为它功能是用第二个参数替换索引元素(第一个参数)。...还可以生成相对于迭代器列表中指向的当前位置后一个前一个元素索引,并且可以使用 set() 方法替换它访问过最近一个元素。

1.3K20

C#中 ArrayArrayList

Array类提供了一套方法, 这些方法执行诸如排序查找归工作在历史上需要程序员手工完成。 C#中数组另外一种使用方式就是使用ArrayList类....• Insert():ArrayList指定索引插入一个元素. • InsertRange():从ArrayList指定索引开始插入群集元素....• Item():指定索引获取或者设置一个元素. • Remove():移除指定数据项首次出现. • RemoveAt():指定索引移除一个元素....应用ArrayListArrayList使用不同于标准数组. 通常情况应该只使用Add方法向ArrayList末尾添加元素....因为InsertRange指定索引为0, 所以是ArrayList开始添加了前两个名字. 而后面的几个名字由于使用AddRange方法而被添加到了末尾.

1.7K30

查找算法

因此, 查找算法时, 我会将所有的东西都写在一起, 便于查找阅读 java中,我们常用查找有四种: 顺序(线性)查找 二分查找/折半查找 插值查找 斐波那契查找 线性查找 思路: 如果在数组中发现满足条件值...,查找多个重复元素 * 思路分析: * 1.找到mid索引值, 不要马上返回 * 2.向mid索引左边扫描,将满足1000元素下标,加入到数组中 *...> resIndexList = new ArrayList(); // 向mid索引值左边扫描, 将所有满足1000元素下标, 加入到集合ArrayList...插值查找算法类似于二分查找不同是插值查找每次从自适应mid开始查找。...取其前三位数字近似值是0.618。由于按此比例设计造型十分美丽,因此称为黄金分割,也称为中外比。这是一个神奇数字,会带来意向不大效果。

75410

第七天 自定义数据类型ArrayList集合【悟空教程】

2.3 ArrayList集合概述 虽然Java中数组是运算速度最快容器,但是实际开发过程中,使用最频繁数据容器并不是数组,而是ArrayList集合。...2.4 ArrayList集合使用格式 ArrayList同为引用类型,符合引用类型使用方式,如下: 导包:import java.util.ArrayList; 创建对象: 与其他普通引用数据类型创建方式完全相同...add(E e):添加元素 public void add(int index,E element):指定索引添加一个元素 public class Demo01ArrayList { public...= scanner.nextLine();System.out.println("请输入分数 ");double score = scanner.nextDouble();// 根据不同科目,修改不同分数...共三个步骤: 1.存储全班同学名字 2.打印全班同学每一个人名字 3.班级总人数范围内,随机产生一个随机数索引查找该随机数索引所对应同学名字 b) 重构内容分析 1:将原来数组容器修改为集合容器

2K50

Java中集合(最全干货精美装)

数组: 数组是在内存中开辟一段连续空间, 指定索引位置增加元素:需要创建一个新数组,将指定新元素存储指定索引位置,再把原 数组元素根据索引,复制到新数组对应索引位置。...ArrayList有的都会有 ArrayListVector相同点与区别: 同: 1 ArrayListVector都是继承了相同父类实现了相同接口 2 底层都是数组(Object...2 扩容: ArrayList以1.5倍方式扩容、Vector 当扩容容量增量大于0时、新数组长度为原数组长度+扩容容量增量、否则新数组长度为原数组长度2倍 3性能: 性能方便通常情况下ArrayList...TreeSetComparable 有序(按照元素顺序,不是你输入顺序 ), 此类iterator快递失败, 自定义类实现对象排序: 要比较类实现Comparable接口 ?...如果key相同,并且hashCode相同,那么value会被覆盖 如果key相同,但是hashcode不同,那么value不会被覆盖 Map集合及各子类区别分析:

78520

Qz学算法-数据结构篇(查找算法--线性、二分)

2.思路分析首先确定该数组中间下标 mid =(left+right)/2然后让需要查找数findValarr[mid]比较findVal>arr[mid],说明你要查找mid右边,因此需要递归向右查找...,也需要结束递归当Ieft>right就需要退出3.代码实现(案例一)package search;/** * @author LeeZhi * @version 1.0 *///注意:使用二分查找前提是...,我们案例二想要实现就是,集合里右重复数字,我们把他都查出来思路分析找到mid索引值,不要马上返回向mid素引值左边扫描,将所有满足1000,元素下标,加入到集合ArrayList向mid...索引右边扫描,将所有满足I000,元素下标,加入到集合ArrayListArraylist返回public static ArrayList binarySearch2(int... resIndexList = new ArrayList(); //找到mid索引值,不要马上返回 向mid素引值左边扫描,将所有满足1000,元素下标,加入到集合

18320

算法图解(五)|散列表与字典

散列表 算法图解第五章内容学习笔记 5.1 散列函数 特点:无论输入是什么数据,散列函数都输出一个数字。用专业术语来说明,散列函数“将输入映射到数字”。 ? 散列函数将输入映射为数字,这有何用途呢?...为此,将milk作为散列函数输入。 ? 散列函数输出为0,我们便将牛奶价格存储索引0。 ? 不断地重复这个过程,最终整个数组将填满价格。 ? 现在假设需要知道鳄梨(avocado)价格。...你无需在数组中查找,只需将avocado作为输入 交给散列函数。 ? 它将告诉你鳄梨价格存储索引4。果然,你在那里找到了。 ? 函数特点: (1)散列函数总是将同样输入映射到相同结果。...(2)散列函数将不同输入映射到不同索引。 (3)散列函数知道数组有多大,只返回有效索引,不会超出索引。...平均情况下,散列表查找(获取给定索引值)速度与数组一样快,而插入删除速度与链表一样快,因此它兼具两者优点!但在最糟情况下,散列表各种操作速度都很慢。

1.2K10

数据结构与算法-散列表

本节内容: 散列函数 散列表应用 冲突 性能 小结 散列函数 散列函数定义:将输入映射到数字 实现散列函数要求: 必须一致:即同样值经过散列函数,返回值必须是一样『注意:就算不同输入得到相同值...应该将不同输入映射到不同数字。例如, 如果一个散列函数不管输入是什么都返回 1,它就不是好散列函数。最理想情况是,将不同输入映射到不同数字。...散列函数能够准确指出输入对应输出位置: 散列函数总是将同样输入映射到相同索引。 散列函数将不同输入映射到不同索引。 散列函数知道数组有多大,只返回有效索引。...平均情况下,散列表查找(获取给定索引值)速度与数组一样快,而插入删除速度与链表一样快,因此它兼具两者优点!但在最糟情况下,散列表各种操作速度都很慢。...冲突很糟糕,应使用可以最大限度减少冲突散列函数。 散列表查找、插入删除速度都非常快。 散列表适合用于模拟映射关系。 一旦填装因子超过 0.7,就该调整散列表长度。

59430

数据结构与算法-散列表

本节内容: 散列函数 散列表应用 冲突 性能 小结 散列函数 散列函数定义:将输入映射到数字 实现散列函数要求: 必须一致:即同样值经过散列函数,返回值必须是一样『注意:就算不同输入得到相同值...应该将不同输入映射到不同数字。例如, 如果一个散列函数不管输入是什么都返回 1,它就不是好散列函数。最理想情况是,将不同输入映射到不同数字。...散列函数能够准确指出输入对应输出位置: 散列函数总是将同样输入映射到相同索引。 散列函数将不同输入映射到不同索引。 散列函数知道数组有多大,只返回有效索引。...平均情况下,散列表查找(获取给定索引值)速度与数组一样快,而插入删除速度与链表一样快,因此它兼具两者优点!但在最糟情况下,散列表各种操作速度都很慢。...冲突很糟糕,应使用可以最大限度减少冲突散列函数。 散列表查找、插入删除速度都非常快。 散列表适合用于模拟映射关系。 一旦填装因子超过 0.7,就该调整散列表长度。

66220

Java集合:List集合

存放数据数组长度不够时,会进行扩容,即增加数组长度。扩展为原来1.5倍。 由于是数组来实现,所以,优点是查找元素很快。可以通过下标查找元素,查找效率高。...创建了一个向量类对象后,可以往其中随意插入不同对象,即不需顾及类型也不需预先选定向量容量,并可以方便地进行查找。...Vector类中提供了各种方法方便用户使用: 1.插入功能 (1)public final synchronized void adddElement(Object obj) 将obj插入向量尾部...obj相同向量成员。...四、ArrayList、LinkedList、Vector底层实现区别 List 有序, 可重复, 有索引。三者均为可伸缩数组。 ArrayList:底层数据结构是数组结构。 线程不安全

1.6K20

增强for循环

用户可以通过整数索引访问元素并搜索列表中元素 与Set集合不同,List允许存在重复元素 List集合特点: 有序:存储取出元素顺序一致 可重复:存储元素可以重复 List创建对象 List...) 修改指定索引元素,返回被修改元素 E get(int index) 返回指定索引元素 下面给出代码实例: import java.util.ArrayList; import java.util.Iterator...HashSet集合特点: 底层数据结构是哈希表 对集合迭代顺序不做任何保证,不保证存储输出顺序一致 没有带索引方法,不能用普通for循环遍历 由于是Set集合,不存在相同元素 下面给出实例展示...TreeSet集合特点: 元素有序,这里顺序不是存储取出顺序,而是按照一定规则进行排序,具体排序取决于构造方法 没有带索引方法,所以不能使用普通for循环遍历 由于是set集合,不包含重复元素集合...,并且删去了相同元素 自然排序Comparable使用 案例:存储学生对象并遍历,创建TreeSet集合使用无参构造方法 要求:按照年龄从小到大排序,年龄相同时,按照姓名字母顺序排序 提示:我们可以将类

1.2K10

Java-String类&集合ArrayList

以""方式给出字符串对象,字符串常量池中储存,而且相同内容只会在其中存储一份。...常用API 通过.lenth().charAt()遍历字符串 获取字符串长度 .lenth() 获取某个索引位置字符 .charAt() String str="你好世界"; for...使用循环控制三次,让用户输入正确登录名密码,判断是否登录成功,登陆成功则不再进行登录,登陆失败则给出提示,并让用户继续登录。...代码规范:使用泛型来定义使用集合 ArrayList list = new ArrayList(); //JDK1.7开始,泛型后面的类型声明可以不写 ArrayList...常用API、遍历 .get()//获取某个索引位置元素值 .size()//获取集合大小 .remove()//删除某个索引位置值,并返回被删除值 .set()//修改某个索引位置值,会返回修改前

61650

Java 知识点 复习备考

抽象类接口不同点:一、构造器:抽象类可以有构造器,接口不可以  二、抽象类来说,除了不能实例化抽象类之外,普通 Java类没什么区别,但是接口是完全不同类型 三、实现:对于抽象类实现:子类用...public char charAt ( int index )  返回指定索引 char 值。 public int length()  返回此字符串长度。...或者 public String substring(int start ,int end):获得当前字符串子串   使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果...类是 List接口 一个具体实现类 ArrayList 对象实现了可变大小数组 随机访问遍历元素时,它提供更好性能 ArrayList 类(戳我) LinkedList 类 ( 戳我...字节输入父类: InputStream  字符输入父类:Reader Java 中栈用途:用于暂存功能,程序运行时保存运行上下文信息。函数(函数?方法!)

25620

Java基础总结大全(2)

int lastIndexOf(int ch, int fromIndex) 返回指定字符在此字符串中最后一次出现索引,从指定索引开始进行反向搜索。...默认用户密码为admin。 区分大小写。 自己从键盘输入用户密码。 2:给定一个字符串统计,统计大写字母,小写字母,数字出现个数....从键盘输入一个字符串,全部26个字母组成。 4:子串整串中出现次数。 也就是说:获取一个字符串中,指定字串该字符串中出现次数....一般情况下,使用哪种List接口下实现类呢? 如果要求增删快,考虑使用LinkedList 如果要求查询快,考虑使用ArrayList 如果要求线程安全,考虑使用Vector。...**如果两元素hashCode值不同,则不会调用equals方法 **如果两元素hashCode值相同,则继续判断equals是否返回true; **hashCodeequals

1.5K90

java数据结构算法(四)

mid索引值,不要马上返回 //2.向mid左边扫描,将所有满足元素下标放入到集合ArrayList中 //3.向mid右边扫描,将所有满足元素下标放入到集合...=[4, 5] 1.3 插值查找 插值查找算法类似于二分查找不同是插值查找每次从自适应****mid开始查找。...将折半查找求mid 索引公式 , low 表示左边索引left, high表示右边索引right. key 就是前面我们讲 findVal int mid = low + (high -...该式说明:只要顺序表长度为F[k]-1,则可以将该表分成长度为F[k-1]-1F[k-2]-1两段,即如上图所示。...从而中间位置为mid=low+F(k-1)-1 类似的,每一子段也可以用相同方式分割 但顺序表长度n不一定刚好等于F[k]-1,所以需要将原来顺序表长度n增加至F[k]-1。

18810

哈希表

"apple" ---> 5 "banana" ---> 3 "pear" ---> 9 散列函数还应遵循一个条件,相同输入一定会得到相同输出。...“apple” 每次输入得到散列值都应该是同一个数字不同输入可能得到散列值会相等,但应做到尽量不相等,这样这个散列函数就会更“可靠”。 如何让字符串映射成数字呢?答案是利用 ASCII 码。...因此当查找一个 key 时,这个 key 对应 value 可能并不在对应 hash 索引,也可能在 hash 索引之后。 操作散列表 操作散列表函数有三个(当然也可以扩展)。...使用 ES6 实现方式是使用 ES6 class WeakMap。...不需要引入其它数据结构就能实现哈希表。 对于链表,可以看这篇文章:链表实现 当有新值进入哈希表时,先判断稀疏数组对应索引有没有存储数据,如果有了则往后查找存储单元然后存入数据。 ?

84330

【Java提高十八】Map接口集合详解

若不为空则先计算keyhash值,然后根据hash值搜索table数组中索引位置,如果table数组该位置有元素,则通过比较是否存在相同key,若存在则覆盖原来keyvalue,否则将该元素保存在链头...因为操作比如插入、删除查找某个值最坏情况时间都要求与树高度成比例,这个高度上理论上限允许红黑树最坏情况下都是高效,而不同于普通二叉查找树。...3,如果查找一个指定位置数据,vectorarraylist使用时间是相同,都是0(1),这个时候使用vectorarraylist都可以。...所以随机访问中一般使用ArrayList 2、LinkedList使用双向链表对元素增加删除提供了非常好支持,而ArrayList执行增加删除元素需要进行元素位移。...解决冲突办法就是索引位置插入一个链接列表,并简单地将元素添加到此链接列表。

1K60
领券