java中常见的一些小知识(1)

这篇具有很好参考价值的文章主要介绍了java中常见的一些小知识(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.数组转List
1.1. Arrays.asList

public class Tesr
{
     public static void main(String[] args) {
        String[] ary = new String[]{ "1", "a"};
        List<String> list = Arrays.asList((ary));
        list.add("ddsdsa");
        System.out.println(list);
    }

}

但是这样写出来的代码是错误的,会出现如下错误:
java中常见的一些小知识(1),java,list
这是因为用Arrays.asList转的ArrayList 全路径为 java.util.Arrays.ArrayList , 不支持 add , remove 等操作,这个ArrayList 和咱们常见的不是同一个。
下面是正确的数组转list并且还可以对list进行操作的写法。

public class Tesr
{
     public static void main(String[] args) {
        String[] ary = new String[]{ "1", "a"};
        List<String> list = new ArrayList<>(Arrays.asList((ary)));
        list.add("ddsdsa");
        System.out.println(list);
    }

}

这个是转换的时new一个ArrayList就可以了。

2.list转数组
list.toArray

public static void main(String[] args) {
    List<String> list = Arrays.asList("a", "b", "c");
    String[] strings = list.toArray(new String[]{});
    for(String s:strings){
        System.out.println(s);
    }
}

如果需要指定数据类型,需要传参指定,如上述代码中数组类型为String,则list.toArray中的类型为String数组类型。

3.字符串转list
借助 Collections.addAll 来实现

 public static void main(String[] args) {
        String str = "a,d,f,gf,d,d,f,g,e,er,f,v";
        List<String> list = new ArrayList<>();
        Collections.addAll(list, str.split(","));
        System.out.println(list);

    }

上述是只适用于String类型的写法,只能输出String类型的列表。如果想要改变分隔符可以根据自己的需要在split中进行修改。

如果想要生成的列表为int类型的列表,则可以使用如下的方法:

public static void main(String[] args) {
        String str = "1,2,3,4,5,678,3,4,5,6";
        List<Integer> collect = Stream.of(str.split(","))
                .map(String::trim)
                .filter(s -> !s.isEmpty())
                .map(Integer::valueOf).collect(Collectors.toList());
        System.out.println(collect);

    }

但是记住字符串中分隔符分割的必须是数字。
4.list转字符串
4.1使用StringBuilder编写

#String类型的列表
public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        StringBuilder builder = new StringBuilder();
        for (String str: list) {
            builder.append(str).append(",");
        }
        System.out.println(builder.substring(0, builder.length() - 1));
    }

#Integer类型的列表
public static void main(String[] args) {
        List<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        StringBuilder builder = new StringBuilder();
        for (Integer str: list) {
            builder.append(str).append(",");
        }
        System.out.println(builder.substring(0, builder.length() - 1));
    }

4.2使用stream流编写

#String类型的列表
public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("v");
        System.out.println(list.stream().map(String::valueOf).collect(Collectors.joining(",")));
    }

#Integer类型的列表
 public static void main(String[] args) {
        List<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        System.out.println(list.stream().map(String::valueOf).collect(Collectors.joining(",")));
    }

5.Map互转
将一个 Map<String, Integer> 转换成 Map<String, String>

public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("a",1);
        map.put("b",2);
        map.put("c",3);
        map.put("d",4);
        Map<String, String> ans = map.entrySet().stream().collect(
                Collectors.toMap(Map.Entry::getKey, s -> String.valueOf(s.getValue()), (a,b) -> a));
        System.out.println(ans);
    }

6.函数方法在二维数组中找到偶数文章来源地址https://www.toymoban.com/news/detail-791184.html

#共用方法
public static void scan(int maxX, int maxY, BiConsumer<Integer, Integer> consumer) {
        for (int i = 0; i < maxX; i++) {
            for (int j = 0; j < maxY; j++) {
                consumer.accept(i, j);
            }
        }
    }
    public static void main(String[] args) {
        int[][] cells = new int[][]{{1, 2, 3, 4}, {11, 12, 13, 14}, {21, 22, 23, 24}};
        List<Integer> ans = new ArrayList<>();
        scan(cells.length, cells[0].length, (i, j) -> {
            if ((cells[i][j] & 1) == 0) {
                ans.add(cells[i][j]);
            }
        });
        System.out.println(ans);
    }

到了这里,关于java中常见的一些小知识(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网安】处理项目中的一些常见漏洞bug(java相关)

    [福利:[ 网络安全重磅福利:入门进阶全套282G学习资源包免费分享 !]](网络安全重磅福利:入门进阶全套282G学习资源包免费分享! ) 1.写在前面 很多时候,一些项目,或许都会有一定的系统安全要求。一般常见于政府项目比较多!!! 项目做完后,都需要做一些安全的扫

    2024年02月13日
    浏览(28)
  • 【云原生技术】云计算中一些常见的Java框架和工具

    开发语言、框架以及应用类型之间的关系通常取决于开发人员的需求和项目的特定要求。以下是对这些概念的详细介绍: 1. 开发语言: 开发语言是编写应用程序的基本工具。不同的开发语言具有不同的语法和特性,以适应不同的开发需求。一些常见的开发语言包括: Python

    2024年01月22日
    浏览(35)
  • [JAVA数据结构] 认识 Iterable、Collection、List 的常见方法签名以及含义

            (一)Iterable                 1. 介绍                 2. 常见方法         (二)Collection                 1. 介绍                  2. 常见方法         (三) List                  1. 介绍                 2. 常见方法

    2024年02月02日
    浏览(34)
  • 常见java知识点1

    目录 1    什么是Spring框架?Spring框架有哪些主要模块? 2    使用Spring框架有什么好处? 3    Java常用的包(列举六个) 4    Arraylist 和 Linkedlist 的区别 5    HashMap和Hashtable的区别 6    Java中常见的 io 流? 7    说一下常见的几个线程池?(Java里面有4个线程池) 8  

    2024年02月16日
    浏览(29)
  • java面试常见知识点

    JDK(Java Development Kit)是Java开发工具包,是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。 JRE是运行基于Java语言编写的程序所不可缺少的运行环境。JRE中包含了JVM,runtime class libraries和Jav

    2024年02月11日
    浏览(38)
  • Java面试题:解释Java的基本数据类型及其大小和默认值,列举数据类型常见的错误知识点

    Java的基本数据类型是Java编程语言中用于存储简单值的类型。这些数据类型包括整数类型、浮点类型、字符类型和布尔类型。下面是对这些基本数据类型的详细解释,包括它们的大小和默认值,以及一些常见的面试中容易出错的知识点。 基本数据类型及其大小和默认值 整型

    2024年04月16日
    浏览(32)
  • Linux一些常见的命令

    1. 基础命令 2. top、free、ps区别 3. grep、awk、sed 3. 查看文本的方式及区别 4. 文件查找 5. 网络

    2024年02月13日
    浏览(23)
  • ​一些常见网络安全术语​

    1、黑帽 为非法目的进行黑客攻击的人,通常是为了经济利益。他们进入安全网络以销毁,赎回,修改或窃取数据,或使网络无法用于授权用户。这个名字来源于这样一个事实:老式的黑白西部电影中的恶棍很容易被电影观众识别,因为他们穿着黑色的斯泰森,而“好人”则

    2024年02月11日
    浏览(44)
  • 常见的一些BUG

    常见的一些BUG,但实际上在编写代码时,我们应该尽可能避免这些类型的错误: 变量名与函数名冲突: 函数参数传递错误: 运算符优先级错误: 嵌套循环计算错误: 条件语句逻辑错误: 函数返回值错误: 变量作用域错误: 循环未正确终止: 函数递归调用导致无限循环:

    2024年02月13日
    浏览(39)
  • 警惕!外贸常见的一些骗局!

    随着网络技术和国际支付的普及,外贸汇款骗局也是时常发生,本文将列举外贸汇款骗局的常见套路和风险提示,以帮助广大外贸人更好地护好自己的“钱袋子”。 常见套路 1.钓鱼 出口商与买家的订单已经谈妥,把收款信息通过邮件发给买家后,在美滋滋等到账时,突然接

    2024年02月07日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包