Java集合类之set接口

Set<String> ans = new HashSet<>();

Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。

new HashSet<>()

其中的hashset类实现了set接口,不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能一个。

HashSet 类提供很多有用的方法,添加元素可以使用 add() 方法:

例如:HashSet<String> sites = new HashSet<String>(); sites.add("Google");
结果:[Google]

计算 HashSet 中的元素数量可以使用 size() 方法:

HashSet<String> sites = new HashSet<String>();
System.out.println(sites.size());

其中<>中的内容可以是String、Boolean、Byte、Short、Integer、Long、Float、Double、Character

具体实例:

import java.util.*;

public class Main {
    static int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }

    public static void main(String[] args) {
        Set<Integer> set = new HashSet<>();
        Set<String> ans = new HashSet<>();
        int x = 19, y = 20;
        for (int i = 0; i <= x; i++) {
            for (int j = 0; j <= y; j++) {
                set.add(i * 100 + j);
            }
        }
        List<Integer> arr = new ArrayList<>(set);
        int len = arr.size();
        for (int i = 0; i < len; i++) {
            int a = arr.get(i);
            for (int j = i + 1; j < len; j++) {
                int b = arr.get(j);
                int x1 = a / 100, x2 = b / 100, y1 = a % 100, y2 = b % 100;
                int up = y1 - y2, down = x1 - x2;
                int c1 = gcd(up, down);
                String K = (up / c1) + " " + (down / c1);
                if (down == 0) {
                    ans.add("x = " + x1);
                    continue;
                }
                int kx = up * x1, Y = y1 * down;
                int kb = Y - kx;
                int c2 = gcd(kb, down);
                String B = (kb / c2) + " " + (down / c2);
                ans.add(K + "  " + B);
            }
        }
        System.out.println(ans.size());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烈焰星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值