Skip to content
Snippets Groups Projects
workingWithNumbers.xml 36.2 KiB
Newer Older
Goik Martin's avatar
Goik Martin committed
<?xml version="1.0" encoding="UTF-8"?>
<chapter annotations="slide" version="5.1"
         xml:id="sd1_workingWithNumbers_chap"
Goik Martin's avatar
Goik Martin committed
         xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes"
Goik Martin's avatar
Goik Martin committed
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:svg="http://www.w3.org/2000/svg"
         xmlns:ns="http://docbook.org/ns/transclusion"
Goik Martin's avatar
Goik Martin committed
         xmlns:m="http://www.w3.org/1998/Math/MathML"
         xmlns:html="http://www.w3.org/1999/xhtml"
         xmlns:db="http://docbook.org/ns/docbook">
  <title>Working with Numbers</title>
Goik Martin's avatar
Goik Martin committed

  <section xml:id="sd1_numbers_sect_boxAndUnbox">
    <title>Boxing and Unboxing</title>

    <figure xml:id="sd1_numbers_fig_stack">
      <title><classname
Goik Martin's avatar
Goik Martin committed
      xlink:href="https://docs.oracle.com/javase/10/docs/api/java/util/Stack.html">Stack</classname>
      of integer values</title>

      <informaltable border="0">
        <colgroup width="87%"/>
        <colgroup width="13%"/>
Goik Martin's avatar
Goik Martin committed
          <td valign="top"><programlisting language="java">final Stack&lt;Integer&gt; values = new Stack&lt;&gt;();

values.push(3);
values.push(1);
values.push(10);

while (!values.empty()) {
  final int i = values.pop();
  System.out.println(i);
}</programlisting></td>

          <td valign="top"><screen>10
1
3</screen></td>
        </tr>
      </informaltable>
    </figure>

    <figure xml:id="sd1_numbers_fig_collectionProperties">
      <title><xref linkend="glo_Java"/> collection features</title>

      <itemizedlist>
        <listitem>
          <para>Supports searching of objects based on:</para>

          <itemizedlist>
            <listitem>
              <para><methodname
              xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html#equals(java.lang.Object)">public
              boolean equals</methodname>(<classname
Goik Martin's avatar
Goik Martin committed
              xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html">Object</classname>
              obj)</para>
            </listitem>

            <listitem>
              <para><methodname
              xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html#hashCode()">public
              int hashCode()</methodname></para>
            </listitem>
          </itemizedlist>
        </listitem>

        <listitem>
          <para>Objects only, no primitive types!</para>
        </listitem>
      </itemizedlist>
    </figure>

    <figure xml:id="sd1_numbers_fig_stackBehindTheScenes">
      <title>Behind the scenes</title>

      <informaltable border="0">
        <colgroup width="48%"/>

        <colgroup width="50%"/>

        <tr>
          <td valign="top"><programlisting language="java">final Stack&lt;Integer&gt; values =
  new Stack&lt;&gt;();

values.push(3);
values.push(1);
values.push(10);

while (!values.empty()) {
Goik Martin's avatar
Goik Martin committed
  System.out.println(values.pop().
     getClass().getTypeName());
}</programlisting></td>

          <td valign="top"><screen>java.lang.Integer
java.lang.Integer
java.lang.Integer</screen></td>
        </tr>
      </informaltable>
    </figure>

    <figure xml:id="sd1_numbers_fig_boxingAndUnboxing">
      <title><link
      xlink:href="https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html">Boxing
      and unboxing</link></title>

      <informaltable border="0">
        <colgroup width="50%"/>

        <colgroup width="50%"/>

        <tr>
          <td valign="top"><programlisting language="none">int iPrimitive <co
                linkends="sd1_numbers_fig_boxingAndUnboxing-1"
                xml:id="sd1_numbers_fig_boxingAndUnboxing-1-co"/> = 7;

Integer iInteger = <co linkends="sd1_numbers_fig_boxingAndUnboxing-2"
                xml:id="sd1_numbers_fig_boxingAndUnboxing-2-co"/>
  iPrimitive;

int iPrimitiveFromInteger = <co linkends="sd1_numbers_fig_boxingAndUnboxing-3"
Goik Martin's avatar
Goik Martin committed
                xml:id="sd1_numbers_fig_boxingAndUnboxing-3-co"/>
  iInteger;</programlisting></td>

          <td valign="top"><programlisting language="none">int iPrimitive <co
                linkends="sd1_numbers_fig_conventional-1"
                xml:id="sd1_numbers_fig_conventional-1-co"/> = 7;

Integer iInteger = <co linkends="sd1_numbers_fig_conventional-2"
                xml:id="sd1_numbers_fig_conventional-2-co"/>
  Integer.valueOf(iPrimitive);

int iPrimitiveFromInteger = <co linkends="sd1_numbers_fig_conventional-3"
Goik Martin's avatar
Goik Martin committed
                xml:id="sd1_numbers_fig_conventional-3-co"/>
  iInteger.intValue();</programlisting></td>
        </tr>
      </informaltable>

      <informaltable border="1" role="slideExclude">
        <colgroup width="50%"/>

        <colgroup width="50%"/>

        <tr>
          <th>Boxing and unboxing</th>

          <th><quote>Conventional</quote> <xref linkend="glo_Java"/></th>
        </tr>

        <tr>
          <td valign="top"><calloutlist>
              <callout arearefs="sd1_numbers_fig_boxingAndUnboxing-1-co"
                       xml:id="sd1_numbers_fig_boxingAndUnboxing-1">
                <para>Defining a primitive <code language="java">int</code>
                value.</para>
              </callout>

              <callout arearefs="sd1_numbers_fig_boxingAndUnboxing-2-co"
                       xml:id="sd1_numbers_fig_boxingAndUnboxing-2">
                <para>Creating an instance of <classname
                xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Integer.html">Integer</classname>
                by means of boxing.</para>
              </callout>

              <callout arearefs="sd1_numbers_fig_boxingAndUnboxing-3-co"
                       xml:id="sd1_numbers_fig_boxingAndUnboxing-3">
                <para>Assigning an <classname
                xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Integer.html">Integer</classname>'s
                value to a primitive <code language="java">int</code> by means
                of unboxing.</para>
              </callout>
            </calloutlist></td>

          <td valign="top"><calloutlist>
              <callout arearefs="sd1_numbers_fig_conventional-1-co"
                       xml:id="sd1_numbers_fig_conventional-1">
                <para>Defining a primitive <code language="java">int</code>
                value.</para>
              </callout>

              <callout arearefs="sd1_numbers_fig_conventional-2-co"
                       xml:id="sd1_numbers_fig_conventional-2">
                <para>Creating a new instance of <classname
                xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Integer.html">Integer</classname>
                using the class method <methodname
                xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Integer.html#valueOf-int-">Integer
                valueOf​(int i)</methodname>.</para>
              </callout>

              <callout arearefs="sd1_numbers_fig_conventional-3-co"
                       xml:id="sd1_numbers_fig_conventional-3">
                <para>Assigning an <classname
                xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Integer.html">Integer</classname>'s
                value to a primitive <code language="java">int</code> using
                the <methodname
                xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Integer.html#intValue--">int
                intValue()</methodname> instance method.</para>
Loading
Loading full blame...