Java基础知识集锦

1,List集合与Array数组相互转换

集合转数组:

List<String> list = new ArrayList<>();
list.add("你");
list.add("好");
list.add("吗");
String[] strArr = new String[list.size()];
list.toArray(strArr);

数组转集合:

String[] hello = {"你","好","吗"};
List list = Arrays.asList(hello);
System.out.println(list);

箴言:你所遇到的绝大多数问题,都是前人所遇到过的。他们总结了方法,你只要能够知道他们总结的方法,就能少走很多弯路。

2,Java中泛型的作用及使用

        1,编译时的类型检查;

        2,消除显性的强制类型转换;

        3,更好的代码复用性,比如实现泛型算法。

我们首先来看一个没有使用泛型的例子:

List list = new ArrayList();
list.add("你");
list.add(1);
// 运行时会报错,Integer cannot be cast to String
String it = (String) list.get(1);
// 我们可以向集合中添加任何类型的数据。
// 但是,没有泛型的时候,减少了编译时的类型检查,
// 在取出元素时需要程序员对每个元素的类型都了解,否则很可能在运行时出现类型转换的异常。

再看一个使用泛型的例子:

List<String> list = new ArrayList<>();
list.add("今天天气真晴朗");
list.add("春来江水绿如蓝");
// 编译时报错
list.add(1);
// 不需要强制类型转换
String str = list.get(0);  

泛型主要使用在类、方法与接口中,我们来看一个简单的在类中使用的案例。

public class Room<T> {
    private T value;

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}
public class test {
    public static void main(String[] args) {
        // 测试
        Room<String> room = new Room<>();
        room.setValue("Hello World");
        System.out.println(room.getValue());
    }
}

参考博客:

java泛型的作用及其基本概念

https://www.cnblogs.com/justinli/p/generic.html

3,Map最常用的遍历方式:迭代(Iterator)

Map<String, String> map = new HashMap<>();
map.put("one", "haha");
map.put("two", "lala");

Iterator<Map.Entry<String, String>> entries = map.entrySet().iterator();
while (entries.hasNext()){
    Map.Entry<String, String> entry = entries.next();
    System.out.println(entry.getKey() + "   " + entry.getValue());
}

4,List和Set相互转换

List允许出现重复值,Set不允许。所以可以将List转成Set从而实现去重的效果。

public class test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("a");
        list.add("b");
        Set<String> set = new HashSet<>(list);
        System.out.println(list + "\n" + set);
    }
}

Set转List

public class test {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("a");
        set.add("b");
        List<String> list = new ArrayList<>(set);
        System.out.println(set + "\n" + list);
    }
}

猜你喜欢

转载自blog.csdn.net/u013517229/article/details/88861904