给定一个数组,找出现两次的数

1 篇文章 0 订阅
public void fun(){
    int[] arr = {1,2,3,3,3,4,5,6,6,6,7,5,10};
    Map<Integer,Long> map = InStream.of(arr).boxed().collect(Collectors.groupingBy(Function.identity(),Collectors.counting()));
    List<Integer> list = new ArrayList<>();
    map.keySet().stream().forEach(integer -> {
        Long value = map.get(integer);
        if(value == 2){
            list.add(integer);
        }
    });
    Integer[] rs = list.toArray(new Integer[0]);
    System.out.println(Arrays.toString(rs));
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
冒泡排序算法是一种简单的排序算法,它重复地走访过要排序的列,一次比较两个元素,如果它们的顺序错误就交换位置。以下是ARMv7汇编指令实现冒泡排序的示例代码: ``` .global bubble_sort bubble_sort: push {lr} @ 保存lr寄存器 mov r3, #0 @ 初始化i=0 outer_loop: cmp r3, r1 @ 比较i和n的大小 bge end_outer_loop @ 如果i>=n,则跳转到结束 mov r4, #0 @ 初始化j=0 inner_loop: cmp r4, r1 @ 比较j和n的大小 bge end_inner_loop @ 如果j>=n,则跳转到外层循环 ldr r5, [r0, r4, lsl #2] @ 加载a[j] ldr r6, [r0, r4, lsl #2] @ 加载a[j+1] cmp r5, r6 @ 比较a[j]和a[j+1] ble no_swap @ 如果a[j]<=a[j+1],则跳过交换操作 str r6, [r0, r4, lsl #2] @ 存储a[j+1] str r5, [r0, r4, lsl #2] @ 存储a[j] no_swap: add r4, r4, #1 @ j=j+1 b inner_loop @ 跳转到内层循环的开头 end_inner_loop: add r3, r3, #1 @ i=i+1 b outer_loop @ 跳转到外层循环的开头 end_outer_loop: pop {pc} @ 恢复lr寄存器并返回 ``` 以上代码实现了一个全局函`bubble_sort`,它的参数组地址`r0`和数组长度`r1`。该函使用了寄存器`r3`、`r4`、`r5`和`r6`,其中`r3`和`r4`分别用于外层循环和内层循环的计器,`r5`和`r6`分别用于存储当前比较的两个元素的值。 该函采用了传统的双重循环实现冒泡排序,外层循环控制比较的轮,内层循环控制每一轮比较的次。在每次比较中,如果前一个元素大于后一个元素,则交换它们的位置。 注意,在ARMv7汇编指令中,可以通过左移操作实现乘法运算。例如,`r4, r1, lsl #2`表示将`r1`左移2位,相当于将`r1`乘以4。由于数组中每个元素都是4字节,因此可以使用左移操作来计算每个元素的偏移量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值